在动画开始之前更新animate属性
Update animate property before animation start
我正在使用jquery animate对一个元素执行以下动画。距离值在动画开始前更改,因此我希望更新动画特性值。我该怎么做?我使用了start
回调函数,如图所示,但它不会更新动画。
el.delay(delay).animate({
top: -distance
},{
duration:700,
start:function(e){
e.props.top = -($(e.elem).offset().top - $(".navigation").offset().top);
}
})
我找到了如何动态更新动画属性的答案。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);
}
}
})
当第一个步骤启动时,我会更改道具值,然后忽略其余步骤。感谢每一位帮助过我的人!:)
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 标记的实时更新,无需加载页面谷歌地图API V3
- ng-animate 当 ng-view 通过路由更新时
- 在动画开始之前更新animate属性
- animate() 更新速度不够快