jQuery scrolltop在滚动速度很快

时间:2013-08-12 14:44:39

标签: jquery twitter-bootstrap jquery-animate scrolltop

http://jsfiddle.net/dennym/wJc9V/1/

延迟触发else状态有问题。如果向下滚动并快速向上滚动,则需要2秒钟,直到较小的菜单栏再次消失。通常第二个菜单(粉红色)应该以200像素出现,大一个(绿色)在顶部消失。当滚动回顶部时,它应该反转这种状态。

有什么想法吗?

这是js片段:

$(document).ready(function() {
    jQuery(window).scroll(function() {
        if (jQuery(window).scrollTop() > 200) {
            jQuery('.onco-nav-small').css({"display":"block", "visibility":"visible"}).animate({marginTop:"0px"},500);
            jQuery('.onco-nav-large').css({"display":"none", "visibility":"hidden"});
        } else {
            jQuery(".onco-nav-small").animate({marginTop:"-50px"},10);
            jQuery('.onco-nav-large').css({"display":"block", "visibility":"visible"});
        }
    });
});

1 个答案:

答案 0 :(得分:1)

DEMO

Documentation

.stop( [clearQueue ] [, jumpToEnd ] )在else部分设置stop(true,true)以清除完成上一个动画。因此下一个动画没有延迟。

jQuery(".onco-nav-small").stop(true,true).animate({marginTop:"-50px"},10);