javascript - 如果 body 有一个类在滚动原生 javascript 上删除

标签 javascript if-statement scroll window removeclass

我正在尝试使用 native javascript,因此没有加载 jquery。我想做一个 if 语句来删除 body 元素中的一个类,只有当它有一个类时。这样我就可以避免每次滚动时都触发它。我基本上希望它仅在窗口滚动并且正文应用了此类时才删除该类,否则不应触发。

我试过这段代码,它确实删除了类,但它总是在滚动时触发,无论 body 是否有类应用。在这种情况下......我在控制台上看到 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');

    }

});

关于javascript - 如果 body 有一个类在滚动原生 javascript 上删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22669448/

相关文章:

javascript - meteor 按钮上的切换图标

javascript - 修复垂直滚动时的 SVG 元素,Firefox 的问题

ios - 使 UICollectionView 始终停止以项目为中心滚动

JavaScript 不将变量写为数字(循环)

javascript - 围绕 Canvas 边缘移动的圆圈

javascript - 如何区分类中的每个复选框元素

c - 以下程序打印的输出是什么?如何评估if条件表达式?

java - 如何将用户输入的字符串转换为 pig 拉丁语?

php - 使用 php if 语句进行过滤

android - ScrollView 根本不滚动