gpt4 book ai didi

javascript - 如何防止在正文内容上滚动并在打开时启用在 Canvas 外导航上滚动?

转载 作者:太空狗 更新时间:2023-10-29 15:41:08 26 4
gpt4 key购买 nike

我已经实现了一个非常基本的 Canvas 外导航(http://blog.tomri.ch/super-simple-off-canvas-menu-navigation/)。我遇到的唯一问题是您无法滚动菜单,这在移动横向模式下尤其成问题,在该模式下菜单延伸到可视屏幕区域下方。

我想知道是否有办法在打开导航菜单时防止 page-wrapper div 中的内容滚动并在 Canvas 外导航中启用滚动,并且,如果可能,不要在导航栏上显示丑陋的大滚动条。

HTML:

<nav id="menu">
<a href="#menu" class="menu-link"></a>
<ul>
<span><a href="#">Title</a></span>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">Blog</a></li>
</ul>
</nav>

<div class="page-wrapper">
Body Content Here
</div>

CSS:

#menu {
position: fixed;
top: 0;
bottom: 0;
width: 13.755em;
right: -13.755em;
height: 100%;
-webkit-transform: translate(0px, 0px);
-moz-transform: translate(0px, 0px);
-o-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
-webkit-transition: 0.15s ease;
-moz-transition: 0.15s ease;
-o-transition: 0.15s ease;
transition: 0.15s ease;
}
#menu.active {
-webkit-transform: translate(-13.755em, 0px);
-moz-transform: translate(-13.755em, 0px);
-o-transform: translate(-13.755em, 0px);
-ms-transform: translate(-13.755em, 0px);
transform: translate(-13.755em, 0px);
}
.page-wrapper {
-webkit-transform: translate(0px, 0px);
-moz-transform: translate(0px, 0px);
-o-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
-webkit-transition: 0.15s ease;
-moz-transition: 0.15s ease;
-o-transition: 0.15s ease;
transition: 0.15s ease;
}
.page-wrapper.active {
-webkit-transform: translate(-13.725em, 0px);
-moz-transform: translate(-13.725em, 0px);
-o-transform: translate(-13.725em, 0px);
-ms-transform: translate(-13.725em, 0px);
transform: translate(-13.725em, 0px);
}

.menu-link {
position: absolute;
top: 15px;
left: -50px;
}

Javascript:

$(".menu-link").click(function(){
$("#menu").toggleClass("active");
$(".page-wrapper").toggleClass("active");
});

最佳答案

要使任何 block 级元素滚动,您可以给它 overflow:auto; 并根据您的网站/应用 height:100%;。要禁用主要内容的滚动,您可以做一些事情,但您必须对它们进行试验。你可以让导航扩展到页面的 100% 宽度,你看到内容的区域只是被一个不可见的元素覆盖,以阻止滚动或只是继续滚动导航。您也可以在单击时禁用/启用 body 上的滚动,请注意在 html,body 上应用 overflow:hidden; 以获得最佳效果,它解决了一些跨浏览器/ios 的问题问题。

希望这能让您有所了解!

关于javascript - 如何防止在正文内容上滚动并在打开时启用在 Canvas 外导航上滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23664770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com