0

当您为动画设置缓动时,动画将遵循该缓动的方程式。这个 脚本很好地描述了我的意思。

假设我确实选择了缓动、任何缓动和动画时间,例如 1000 毫秒。动画将完全遵循缓动方程。如果我将时间拆分为 500 毫秒,动画周期将拆分,但它会填充相同的缓动方程。

我想要做的不仅仅是分割时间,还有缓动方程。那就是动画完成了,但它没有遵循完整的方程式,而只是一半。

这有点复杂,我知道,我想知道是否有解决方案。

4

1 回答 1

2

我会看一下 Step Function ( http://api.jquery.com/animate/ )。根据您正在制作动画的集合/对象,这可能是您问题的解决方案。另一篇值得阅读的好文章是http://www.bennadel.com/blog/1856-Using-jQuery-s-Animate-Step-Callback-Function-To-Create-Custom-Animations.htm。希望有帮助:

Step Function .animate() 的第二个版本提供了一个 step 选项——一个在动画的每一步触发的回调函数。此函数对于启用自定义动画类型或更改正在发生的动画很有用。它接受两个参数(now 和 fx),并将其设置为动画的 DOM 元素。

•now:每一步动画属性的数值 •fx:对jQuery.fx原型对象的引用,其中包含许多属性,例如动画元素的elem,第一个和最后一个值的start和end分别是动画属性的属性,以及被动画属性的属性。请注意,为每个动画元素上的每个动画属性调用 step 函数。例如,给定两个列表项,step 函数在动画的每一步触发四次:

$('li').animate({ opacity: .5,
height: '50%' }, { step: function(now, fx) { var data = fx.elem.id + ' ' + fx.prop + ' : ' + now; $('body').append('' + data + ''); } });

于 2011-06-16T19:58:32.943 回答