🐛 Fix scrolling when drawer is open
This commit is contained in:
@@ -5,18 +5,15 @@ import CloseIcon from '../../assets/svg/xmark.svg';
|
|||||||
import { navLinks } from '../../data/nav-links';
|
import { navLinks } from '../../data/nav-links';
|
||||||
---
|
---
|
||||||
|
|
||||||
<div
|
<!-- drawerOpened is defined in /src/layouts/Layout.astro -->
|
||||||
x-data="{ open: false }"
|
<div class="drawer-container" @keydown.escape="drawerOpen = false">
|
||||||
class="drawer-container"
|
<button @click="drawerOpen = !drawerOpen">
|
||||||
@keydown.escape="open = false"
|
|
||||||
>
|
|
||||||
<button @click="open = !open">
|
|
||||||
<BarsIcon class="bars-icon" width={24} height={24} />
|
<BarsIcon class="bars-icon" width={24} height={24} />
|
||||||
</button>
|
</button>
|
||||||
<div
|
<div
|
||||||
class="overlay"
|
class="overlay"
|
||||||
@click="open = !open"
|
@click="drawerOpen = !drawerOpen"
|
||||||
x-show="open"
|
x-show="drawerOpen"
|
||||||
x-transition:enter-start="hidden-overlay"
|
x-transition:enter-start="hidden-overlay"
|
||||||
x-transition:enter-end="visible-overlay"
|
x-transition:enter-end="visible-overlay"
|
||||||
x-transition:leave-start="visible-overlay"
|
x-transition:leave-start="visible-overlay"
|
||||||
@@ -25,14 +22,14 @@ import { navLinks } from '../../data/nav-links';
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="drawer"
|
class="drawer"
|
||||||
x-show="open"
|
x-show="drawerOpen"
|
||||||
x-transition:enter-start="hidden-drawer"
|
x-transition:enter-start="hidden-drawer"
|
||||||
x-transition:enter-end="visible-drawer"
|
x-transition:enter-end="visible-drawer"
|
||||||
x-transition:leave-start="visible-drawer"
|
x-transition:leave-start="visible-drawer"
|
||||||
x-transition:leave-end="hidden-drawer"
|
x-transition:leave-end="hidden-drawer"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<button @click="open = !open">
|
<button @click="drawerOpen = !drawerOpen">
|
||||||
<CloseIcon class="bars-icon" width={24} height={24} /></button
|
<CloseIcon class="bars-icon" width={24} height={24} /></button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -30,7 +30,11 @@ const title = Astro.props.title || Astro.props.frontmatter?.title || 'Unknown';
|
|||||||
href={`${Astro.site}rss.xml`}
|
href={`${Astro.site}rss.xml`}
|
||||||
/><title>{`ghall.space - ${title}`}</title>
|
/><title>{`ghall.space - ${title}`}</title>
|
||||||
</head>
|
</head>
|
||||||
<body class="layout-simple">
|
<body
|
||||||
|
class="layout-simple"
|
||||||
|
x-data="{ drawerOpen: false }"
|
||||||
|
:class="drawerOpen ? 'lock-scroll' : ''"
|
||||||
|
>
|
||||||
<Header />
|
<Header />
|
||||||
<main>
|
<main>
|
||||||
<slot />
|
<slot />
|
||||||
@@ -38,3 +42,9 @@ const title = Astro.props.title || Astro.props.frontmatter?.title || 'Unknown';
|
|||||||
<Footer />
|
<Footer />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.lock-scroll {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user