如何创建平滑的动画以轻松实现目标

发布于 2025-01-06 18:17:31 字数 208 浏览 1 评论 0原文

如何创建一个平滑的动画,随着目标位置的改变而逐渐靠近目标?

正如这个jsFiddle所示,动画在moveTarget()期间停止或被阻止而不是继续朝着新的目标坐标前进。

达到预期效果的理想实现/结构是什么?

How can I create a smooth animation that eases in toward a target as it changes position?

As this jsFiddle shows, the animation stops or gets blocked during moveTarget() instead of continuing toward the new target coordinates.

What would be the ideal implementation / structure to achieve the desired effect?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只是偏爱你 2025-01-13 18:17:31

好的,在这里回答我自己的问题,以防其他人遇到这个问题。

不是每次 moveTarget() 触发时都计算 change (change = finish - begin),而是在 onEnterFrame( )。所以 moveTarget() 只负责获取新的 X 和 Y 位置。

这使得值能够逐渐接近目标。

我还将缓动函数的时间值永久设置为始终为 1:

easeIn(1, begin,change,uration);

示例答案在此修订版 jsFiddle 中:http://jsfiddle.net/dannygarcia/LqP2R/45/

Ok, answering my own question here in case anyone else has this problem.

Instead of calculating change (change = finish - begin) each time moveTarget() fires, it is constantly being calculated in onEnterFrame(). So moveTarget() only responsible for getting the new X and Y positions.

This allows the values to ease toward the target.

I also permanently set the time value of the easing function to always be 1:

easeIn(1, begin, change, duration);

The example answer is in this revision jsFiddle: http://jsfiddle.net/dannygarcia/LqP2R/45/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文