Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 停止addClass多次触发_Jquery_Css_Animation - Fatal编程技术网

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已经检查了一个类是否存在。