Jquery 停止addClass多次触发
我正在尝试将类添加到导航中。当用户滚动时,该类将被添加到元素中,具体取决于Jquery 停止addClass多次触发,jquery,css,animation,Jquery,Css,Animation,我正在尝试将类添加到导航中。当用户滚动时,该类将被添加到元素中,具体取决于.scrollTop()值。我可以很好地工作,但是每次用户滚动时,addClass都会不断启动,因为我在添加的类上有CSS3动画,所以它会创建一个非常明显的人工制品 我确实意识到有像“scrollspy”和“waypoints”这样的选项,但我很想找到一种没有它们的实现方法(我还没有测试过这些库是否会出现这种情况) 有没有办法防止这种情况发生?谢谢 编辑:根据请求附加代码 $(window).scroll(functio
.scrollTop()
值。我可以很好地工作,但是每次用户滚动时,addClass
都会不断启动,因为我在添加的类上有CSS3动画,所以它会创建一个非常明显的人工制品
我确实意识到有像“scrollspy”和“waypoints”这样的选项,但我很想找到一种没有它们的实现方法(我还没有测试过这些库是否会出现这种情况)
有没有办法防止这种情况发生?谢谢
编辑:根据请求附加代码
$(window).scroll(function(){
var scrollPos = $(window).scrollTop();
if(scrollPos <= 100){
$(".nav-home").addClass("selected");
}
if(scrollPos > 100 && scrollPos <= 500){
$(".nav-showcase").addClass("selected");
}
});
$(窗口)。滚动(函数(){
var scrollPos=$(window.scrollTop();
如果(scrollPos 100&&scrollPos您可以检查该类是否已添加,如果已添加,请勿再次添加
if(!$(".nav-home").hasClass("selected")){
$(".nav-home").addClass("selected")
}
希望这有帮助您可以检查该类是否已添加,如果已添加,请不要再次添加
if(!$(".nav-home").hasClass("selected")){
$(".nav-home").addClass("selected")
}
希望这对您有所帮助您需要像阅读故事一样阅读代码:
if(scrollPos < 100){
$(".nav-home").addClass("selected");
}
if(scrollPos > 100 && scrollPos < 500){
$(".nav-showcase").addClass("selected");
}
您需要像阅读故事一样阅读代码:
if(scrollPos < 100){
$(".nav-home").addClass("selected");
}
if(scrollPos > 100 && scrollPos < 500){
$(".nav-showcase").addClass("selected");
}
正如@Mark前面提到的,“你需要像阅读故事一样阅读代码”;我只是没有以足够的深度阅读我的故事。我在错误的位置删除了我的类,从而导致了我所遇到的问题。如果有人感兴趣,我已经更正了我上面发布的jsbin中的代码片段
感谢您的回复。正如@Mark前面提到的,“您需要像阅读故事一样阅读代码”;我只是没有以足够的深度阅读我的故事。我在不正确的位置删除了我的类,从而导致了我遇到的问题。如果有人感兴趣,我已经更正了上面发布的jsbin中的代码片段
谢谢您的回复。请将相关代码添加到问题中您是否只希望在点击某个.scrollTop()时触发一次
value?@AndrewWhitaker我确实发布了它,这里又是@KevinKulla我希望它在进入某个范围时只发射一次。比如0到100,101到500等等@ponens:链接到外部站点总是很有帮助的,但最好在问题中包含代码。请将相关代码添加到问题中你只想发射一次吗当您点击某个.scrollTop()时,将显示nce;
value?@AndrewWhitaker我确实发布了它,这里是@KevinKulla,我希望它在进入某个范围时只发射一次。比如0到100,101到500等等@ponens:链接到外部站点总是很有帮助的,但最好在问题中包含代码。谢谢你的回答,我完全理解正在发生的事情,并且我想我只需要知道如何防止它多次触发。我尝试的第一件事是“hasClass”,但它不起作用。我在另一篇stackoverflow帖子上读到addClass检查该类是否存在。谢谢你的回复,我完全理解发生了什么以及为什么它会多次触发s、 我想我只需要知道如何防止它多次触发。我尝试的第一件事是“hasClass”,但它不起作用。我在另一篇stackoverflow帖子上读到,addClass检查该类是否存在。嗨,我尝试过,但它不起作用。我还读到了一个stackoverflow问题,addClass已经检查某个类是否存在嗨,我试过了,但没用。我还读到了一个stackoverflow问题,addClass已经检查了一个类是否存在。