jQuery的scrollTop动画不必要的电话

时间:2019-06-20 15:00:39

标签: jquery css

我正在开发一个小型网页,我想在向下滚动时更改导航栏的背景颜色。

$(window).on("scroll", function() {
    if($(window).scrollTop()) {
        $('nav').animate({'background-color' : '#999999'}, 'slow');
        //$('nav').css("background-color","#cccccc");
    }
    else {
        $('nav').animate({'background-color' : '#eeeecc'}, 'slow');
        //$('nav').css("background-color","#eeeecc");
    }
})

当我滚动到顶部时,if语句立即被调用,else语句在大约10秒钟后被调用。但是else语句应该立即执行。

如果我使用的是注释的代码行,则可以使用。

1 个答案:

答案 0 :(得分:0)

起作用的是使用停止功能:

$(window).on("scroll", function() {
    if($(window).scrollTop()) {
        $('nav').animate({'background-color' : '#999999'}, 'slow'); 
    }
    else {
        $('nav').stop(true,true);
        $('nav').animate({'background-color' : '#eeeecc'}, 'slow');
    }
})

但是我不确定这是否是一个好的解决方案。