我的网站上有完整的页面导航。为了确保打开导航时页面无法滚动,正文采用隐藏溢出的“无滚动”类。当导航打开时,这也会删除滚动条。
当再次按下导航按钮并且导航关闭时,类“no-scroll”将从主体中删除,立即显示滚动条。导航栏需要 1.05 秒才能完全关闭。我试图实现的目标是不立即删除“无滚动”类,而是延迟删除。有什么办法可以做到这一点吗?
这是我当前必须在单击按钮时添加和删除类的代码:
<script>
// when DOM is ready
document.addEventListener('DOMContentLoaded', () => {
// on .nav-menu-button click
document.querySelectorAll('.nav-menu-button').forEach(trigger => {
trigger.addEventListener('click', function(){
this.x = ((this.x || 0) + 1)%2;
if(this.x){ // 1st click
document.querySelectorAll('body').forEach(target => target.classList.add('no-scroll'));
}
else{ // 2nd click (toggle)
document.querySelectorAll('body').forEach(target => target.classList.remove('no-scroll'));
}
});
});
});
</script>
提前致谢!
您可以使用 setTimeout 函数。这里我使用了 5 秒延迟:
setTimeout(function(){
document.querySelectorAll('body').forEach(target => target.classList.remove('no-scroll'));
},5000);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)