If语句- If主体有一个类remove在滚动原生javascript
if statement - if body has a class remove on scroll native javascript
我试图使用原生javascript,所以没有jquery加载。我想使一个if语句删除类在体元素只有当它有一个类。这样我就可以避免每次出现卷轴时触发它。我基本上想让它删除类只有当窗口滚动和主体有这个类应用到它,否则它不应该触发。
我尝试了这段代码,它确实删除了类,但它总是触发滚动,无论身体是否有一个类或不应用于它。在这种情况下……我看到控制台上的scrollEvent打印了我在页面上做的每一个滚动。你是怎么做这项工作的?
if(document.body.classList){
window.addEventListener('scroll', function(){
console.log('scrollEvent');
document.body.classList.remove('mobile-menu-open');
});
}
你的if需要检查这个类
window.addEventListener('scroll', function(){
console.log('scrollEvent');
// do the following only if it has the class
if( document.body.classList.contains('mobile-menu-open') ) {
document.body.classList.remove('mobile-menu-open');
}
});
你可以删除侦听器,一旦你的类从body
中删除,这样当你滚动时它就不会再触发了。
代码如下:
var removeMenuClass = function() {
document.body.classList.remove('mobile-menu-open');
// remove the scroll listener
window.removeEventListener('scroll', removeMenuClass, false);
}
// add the scroll listener
window.addEventListener('scroll', removeMenuClass, false);
如果需要(比如当你的"mobile-menu"重新打开时),你可以用同样的方式重新附加eventListener
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如果 a 为 false,则 if(a) === if(false)
- 幻灯片滚动javascript不起作用
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 将视口底部滚动到元素底部
- jQuery Lazy加载动画滚动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 设置滑块分区上的滚动
- 结合jQuery和jetpack无限滚动
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 正在尝试使用if和else添加类,但无法正常工作
- 滚动到容器中的下一个元素-几乎到了
- jQuery If 语句仅适用于平滑滚动
- 使用滚动和屏幕大小的嵌套 JQuery if 语句
- $(window).滚动在if语句内部执行,即使它没有't不符合条件
- 带有滚动顶的If语句不起作用
- 将按钮转换为滚动if语句
- 如何在if语句中使用css类滚动页面
- 如何在 if 语句中包含鼠标滚动和单击事件
- If语句- If主体有一个类remove在滚动原生javascript