我有一个这样的函数,可以切换我的下拉菜单。
<div class="module widget-handle mobile-toggle right visible-sm visible-xs">
<a id="mobile-nav" href="#">
<div class="container1" onclick="myFunction(this)">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>.
</div>
</a>
</div>
<script>
function myFunction(x) {
x.classList.toggle('change');
document.body.style.overflow ='hidden'
}
</script>
它的最后一部分
document.body.style.overflow = 'hidden'
防止页面在下拉菜单打开时在顶部溢出。问题是,当我单击菜单栏时,当溢出消失时,再次单击栏会显示页面,但由于溢出被隐藏而锁定它。
我想撤消
document.body.style.overflow = 'hidden'
当菜单关闭时,我最接近理解的是功能doBack
。我可以以某种方式将doBack
添加到现有函数中吗?
手机页面在这里
这是一个WordPress网站,上面的javascript通过按栏来切换下拉菜单。为了扩展下拉列表,我使类collapse
更大,如下所示。
@media (max-width: 768px) {
.collapse {
position: absolute;
height: 775px;
background-color: white;
z-index: 99999 !important;
top: 75px;
left: -50px;
line-height: 10px;
}
}
.HTML:
<div class="module-group right">
<div class="module left">
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul id="menu" class="menu">
<li id="menu-item-15050" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-15050 dropdown">
<a title="Contact" href="url">Contact
<ul role="menu" class="dropdow n-menu">
</ul>
</a>
</li>
</ul>
</div>
</div>
</div>
您可以使用以下命令消除样式属性:
document.body.style.overflow = null
您可以简单地添加新的 CSS 类:
.body-overflow {
overflow: hidden;
}
并在您的 JavaScript 函数中添加另一个.classList.toggle()
但这次是在正文上:
function myFunction(x) {
x.classList.toggle('change');
document.body.classList.toggle('body-overflow');
}