我正在尝试将一个元素从位置A动画到位置B,但我不希望它在每个点之间线性地移动,我想要一种“抛物线”轨迹。
我可以使用jQuery.animate()吗?
或者我应该使用setInterval()?
从头开始手动编码谢谢!
丹尼尔
答案 0 :(得分:8)
您可以在jQuery.easing
上创建自己的“缓动”功能,例如,此函数将近似于90度的sin曲线
jQuery.easing.sin90 = function(p, n, firstNum, diff) {
return Math.sin(p * Math.PI / 2) * diff + firstNum;
};
p
是0-1之间的数字,表示动画时间的百分比,n
是此动画的实际经过时间,firstNum
和diff
是有点误导,似乎在某些时候这将采用开始/结束值,但现在所有缓动函数只是将p
值标准化为firstNum = 0
和diff = 1
我把a simple fiddle放在一起显示使用每个属性的缓动和一些sin / cos函数来使用jQuery为圆圈中的div设置动画。
答案 1 :(得分:2)