首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jQuery.animate()创建“非线性”轨迹?

如何使用jQuery.animate()创建“非线性”轨迹?
EN

Stack Overflow用户
提问于 2011-02-11 21:39:51
回答 2查看 2.9K关注 0票数 1

我正在尝试将一个元素从A位置动画到B位置,但我不希望它在每个点之间线性移动,我希望有一种“抛物线”轨迹。

我完全可以使用jQuery.animate()吗?

或者我应该使用setInterval()从头开始手动编码?

谢谢!

丹尼尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-11 21:43:54

这是一个项目

http://plugins.jquery.com/project/MoveTo-Bezier-Curve

票数 2
EN

Stack Overflow用户

发布于 2011-02-11 23:33:52

您可以在jQuery.easing上创建自己的“缓和”函数,例如,此函数将近似90度以上的正弦曲线

代码语言:javascript
复制
jQuery.easing.sin90 = function(p, n, firstNum, diff) {
    return Math.sin(p * Math.PI / 2) * diff + firstNum;
};

p是一个从0到1的数字,表示动画时间的百分比,n是此动画实际经过的时间,firstNumdiff有点误导,看起来好像在某个点上需要一个开始/结束值,但现在所有的缓和函数都只是将p值标准化,以便firstNum = 0diff = 1

我使用每个属性的缓动和一些sin/cos函数将a simple fiddle显示组合在一起,以使用jQuery在圆圈中设置div动画。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4969645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档