1

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"});
        }
    });
});
4

1 回答 1

1

演示

文档

.stop( [clearQueue ] [, jumpToEnd ] )在else部分设置它stop(true,true)可以清除完整的上一个动画。使下一个动画没有延迟。

jQuery(".onco-nav-small").stop(true,true).animate({marginTop:"-50px"},10);
于 2013-08-12T14:47:30.260 回答