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"});
}
});
});
答案 0 :(得分:1)
.stop( [clearQueue ] [, jumpToEnd ] )
在else部分设置stop(true,true)
以清除完成上一个动画。因此下一个动画没有延迟。
jQuery(".onco-nav-small").stop(true,true).animate({marginTop:"-50px"},10);