好吧,我在尝试使用滚动事件的条件动画DOM的几个元素时遇到问题。 首先,我使用Drupal 7,因此我使用的jQuery库版本是1.4.4。使用jQuery滚动动画
现在,我想缩小页眉的大小,当页面向下滚动时,通过改变其内部元素的CSS属性。
首先,在滚动事件中,我检查窗口的scrollTop位置。如果位置不是0(意味着页面向下滚动),则触发标题内部元素的动画。
如果位置等于零,我希望css属性回退到原始状态,以便标题检索其完整大小。
动画的第一部分工作正常。当我向下滚动页面时,页眉会按预期收缩。但是,当我将页面向上滚动到顶部时,第二个动画不起作用。动画都是越野车,并且在几秒钟后发生并且变得疯狂,来回改变由animate()
功能影响的CSS属性。
有没有人有关于如何清除这一点?
这里是我使用的代码的简化部分:
$(window).scroll(function(){
if($(window).scrollTop() != 0){
$('#myFirstElement').animate({marginTop: '20px'}, 300);
$('#mySecondElement').animate({top: '20px'}, 300);
}
else {
$('#myFirstElement').animate({marginTop: '32px'}, 300);
$('#mySecondElement').animate({top: '32px'}, 300);
}
});
是的,绝对适合我。 sdespont的回答改善了动画的行为,但我仍然在使用滚动时感到烦恼。我猜是什么导致了差异,是stop()函数。非常感谢Dom Day和你三个快速有效的答案! –
感谢您的大开眼界。我用滚动位置和状态的组合来做到这一点... http://jsfiddle.net/nMcxQ/1808/ –