Javascript 在动画开始之前更新“动画”属性
我正在使用jqueryanimate对元素进行以下动画。“距离”值在动画开始之前更改,因此我要更新“动画”属性值。我该怎么做?我使用了Javascript 在动画开始之前更新“动画”属性,javascript,jquery,animation,Javascript,Jquery,Animation,我正在使用jqueryanimate对元素进行以下动画。“距离”值在动画开始之前更改,因此我要更新“动画”属性值。我该怎么做?我使用了start回调函数,如图所示,但它不会更新动画 el.delay(delay).animate({ top: -distance },{ duration:700, start:function(e){ e.props.top = -($(e.elem).offset().top - $(".navigation"
start
回调函数,如图所示,但它不会更新动画
el.delay(delay).animate({
top: -distance
},{
duration:700,
start:function(e){
e.props.top = -($(e.elem).offset().top - $(".navigation").offset().top);
}
})
我能够找到关于如何动态更新动画属性的答案
start
是一个回调函数,当动画开始时它会被触发,但对道具
对象所做的修改不会反映在动画中!为此,step
callback是理想的选择,让我们在每个动画步骤上更改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);
}
}
})
我在启动第一步时更改道具值,然后忽略其余步骤。谢谢所有帮助我的人!:) 我猜您在开始回调或参数中缺少了单位
(+px)
?无论您在哪里分配css属性
,我都添加了px
,但动画中没有更改!你能分享可执行的演示文件吗?