如何在jQuery中通过滚动和元素内部切换类

如何在jQuery中通过滚动和元素内部切换类,jquery,onscroll,Jquery,Onscroll,我将元素分类为。根主体它包含所有页面内容,并滚动而不是。当用户在根目录体中滚动时,我想将一个类切换到我的页面.navigation HTML 使用$()。在('scroll',…)上,可以在特定元素中侦听滚动事件,如下所示。然后,您可以使用addClass方法添加所需的类,并使用removeClass将其删除 $(文档).ready(函数(){ "严格使用",; $(“.root body”).on('scroll',evt=>{ if($(evt.target).scrollTop()>1)

我将元素分类为
。根主体
它包含所有页面内容,并滚动而不是
。当用户在
根目录体中滚动时,我想将一个类切换到我的页面
.navigation

HTML

使用
$()。在('scroll',…)
上,可以在特定元素中侦听滚动事件,如下所示。然后,您可以使用
addClass
方法添加所需的类,并使用
removeClass
将其删除

$(文档).ready(函数(){
"严格使用",;
$(“.root body”).on('scroll',evt=>{
if($(evt.target).scrollTop()>1){
$(“.navigation”).addClass('bg-red');
}否则{
$(“.navigation”).removeClass('bg-red');
}
})
})
正文{
溢出:隐藏;
}
.根体{
宽度:100px;
高度:100px;
溢出:滚动;
}
.导航{
高度:20px;
宽度:100px;
}
.bg红色{
背景色:红色;
}

我的同僚们都是精英。雷姆罪魁祸首是我们的尊严,是我们的尼莫,在我们的演讲中,我明白了!无需满足法定条件!

@Rorymcrossan,感谢您的反馈。我刚刚改进了我的答案。两个注释-如果您只想添加一次类,请使用
$(“.root body”).one('scroll',..
。否则,您可能需要检查滚动位置,如果0,则删除该类(这不是OPs问题,只是扩展到下一步)。如果除了使用颜色进行简单的添加类之外,还需要执行其他操作,那么您可能会首先对滚动事件进行
debounce
。感谢您,它正在工作,但我错过了一件事:当用户将1px滚动到底部时,我想添加类,而当用户转到元素顶部时,我想删除类。@ratebcrypto,我改进了我的代码以显示它如何实现所需。在这种情况下,需要使用
scrollTop
方法检查元素的
scrollPosition
<body>
    <div class="navigation"></div>
    <div class="root-body">
        <!-- page content goes here -->
    </div>
</body>
body {
    overflow: hidden;
}
.root-body {
    width: 100vw;
    height: 100vh;
    overflow: scroll;
}