Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在动画开始之前更新“动画”属性_Javascript_Jquery_Animation - Fatal编程技术网

Javascript 在动画开始之前更新“动画”属性

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"

我正在使用jqueryanimate对元素进行以下动画。“距离”值在动画开始之前更改,因此我要更新“动画”属性值。我该怎么做?我使用了
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
,但动画中没有更改!你能分享可执行的演示文件吗?