docs-site: prevent scrolling when global bar menu is displayed

This commit is contained in:
Glen Huang
2025-10-13 23:06:05 +08:00
parent 7d3972b993
commit f66b96c102
2 changed files with 14 additions and 1 deletions

View File

@@ -35,6 +35,12 @@
} }
})(); })();
}); });
function toggleMenu() {
menuOpen = !menuOpen;
window.scrollTo({ top: 0 });
document.documentElement.classList.toggle("no-scroll", menuOpen);
}
</script> </script>
<svelte:head> <svelte:head>
@@ -64,7 +70,7 @@
{/if} {/if}
</div> </div>
<div class={["menu", menuOpen && "open"]}> <div class={["menu", menuOpen && "open"]}>
<button onclick={() => (menuOpen = !menuOpen)}>Menu</button> <button onclick={toggleMenu}>Menu</button>
<ul> <ul>
{@render navItems(docs.navItems)} {@render navItems(docs.navItems)}
</ul> </ul>
@@ -130,6 +136,7 @@
color: #666; color: #666;
} }
.menu { .menu {
color: var(--fgColor);
& > ul { & > ul {
visibility: hidden; visibility: hidden;
position: fixed; position: fixed;

View File

@@ -3,12 +3,18 @@
:root { :root {
--pagePadding: 15px; --pagePadding: 15px;
--globalBarHeight: 60px; --globalBarHeight: 60px;
--fgColor: #000;
--fgInvertedColor: #fff; --fgInvertedColor: #fff;
--bgInvertedColor: #203637; --bgInvertedColor: #203637;
} }
html { html {
box-sizing: border-box; box-sizing: border-box;
&.no-scroll {
overflow: hidden;
height: 100vh;
}
} }
*, *,
*:before, *:before,