我正在使用jquery animate对元素执行以下动画。在动画启动之前距离值会发生变化,因此我想更新animate属性值。我怎样才能做到这一点?我使用了start
回调函数,但它没有更新动画。
el.delay(delay).animate({
top: -distance
},{
duration:700,
start:function(e){
e.props.top = -($(e.elem).offset().top - $(".navigation").offset().top);
}
})
答案 0 :(得分:0)
我能够找到关于如何动态更新动画版的答案。 start
是一个回调函数,它在动画开始时被触发但是对props
对象的修改没有反映在动画中!为此,step
回调是理想的,它让我们在每个动画步骤中更改fx对象。以下是我想出的解决方案。
el.delay(delay).animate({
top: -distance + 'px'
},{
duration:700,
step:function(now,fx){
if(now == 0){
fx.end = -($(fx.elem).offset().top - $(".navigation").offset().top);
}
}
})
我在第一步被触发时改变了prop值,之后我忽略了其余的步骤。谢谢每一位帮助过我的人! :)