javascript - 在网页上自动移动对象

标签 javascript jquery css

我想创建一个网页,在页面上以指定模式移动对象。

例如,用户点击“开始”按钮,一个对象在屏幕上以 8 字形模式移动 30 秒。

我不是在找人为我编写代码,我只是找不到从哪里开始 - 无论是 CSS、JS 还是 C#。

最佳答案

解决方案一 -- 使用 CSS3 的 @keyframesanimation

优点:编码很少。您将使用关键帧来指定 transformtransform3d 以准确指定您希望对象在给定时间的位置,然后开始比赛。 CSS 可以为您处理计时和缓动。这可以根据您的喜好进行细化,并且无需进行太多更改,您还可以影响其他内容,例如缩放、旋转和不透明度。

对于您的特定用例,这几乎肯定是您想要做的。请记住,您将通过 javascript 启动动画。

缺点:它确实适用于预制动画。如果您希望动画跟随光标移动或中途停止,这不是您想要的。

方案二 -- 使用javascript直接操作topleft或者transform变换 3d。您将在 requestAnimationFrame 设置的函数中执行此操作。在该函数结束时,您将再次调用 requestionAnimationFrame。每次通过该方法,您都会更新对象当时应该位于的位置。

优点:细粒度控制。它可以动态响应正在发生的事件,并在动画中间改变它的路线。如果编写得当,它显然比 CSS 解决方案性能更高(尽管您的场景可能不够复杂,无法注意到这一优势)。

缺点:随着控制而来的是责任。管理场景可能很复杂,而且让对象以 8 字形模式移动可能有点矫枉过正。但它确实开辟了新的前景。

解决方案三 -- 使用为您处理这些内容的库。

如果这是我们要做的很多事情,那么有一些用于复杂动画的不错的工具包 -- Greensock , 例如。我肯定会看看现有的动画工具包,因为它们将真正帮助您的代码在许多不同的平台上工作。它们还将有助于解决不可避免的性能瓶颈。

优点:让其他人管理动画的复杂性。他们已经解决了您可能会遇到的问题。

缺点:矫枉过正是一件有趣的事情。让您的第三方库的存在取代您自己做的单调乏味,而不是简单地取代您对自己如何做的缺乏了解。

关于javascript - 在网页上自动移动对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30308288/

相关文章:

带大括号 {} 的 Javascript 构造函数

Javascript 选项处理

javascript - 带回调的 Jquery/CSS 顺序元素动画

css - 如何在 Bootstrap 卡片元素之间添加空间?

javascript - 获得 parent 的第n个 child

javascript - 对象字面量中的这个作用域

javascript - D3 中的工具提示如何动态获取数据?

javascript - 如何根据我的以下要求处理Javascript的Confirm()?

javascript - 根据复选框显示隐藏内容,如果选中一个复选框,则禁用另一个复选框

php - float 框将其他所有内容向下推 - 无限滚动