我想创建一个网页,在页面上以指定模式移动对象。
例如,用户点击“开始”按钮,一个对象在屏幕上以 8 字形模式移动 30 秒。
我不是在找人为我编写代码,我只是找不到从哪里开始 - 无论是 CSS、JS 还是 C#。
最佳答案
解决方案一 -- 使用 CSS3 的 @keyframes
和 animation
。
优点:编码很少。您将使用关键帧来指定 transform
或 transform3d
以准确指定您希望对象在给定时间的位置,然后开始比赛。 CSS 可以为您处理计时和缓动。这可以根据您的喜好进行细化,并且无需进行太多更改,您还可以影响其他内容,例如缩放、旋转和不透明度。
对于您的特定用例,这几乎肯定是您想要做的。请记住,您将通过 javascript 启动动画。
缺点:它确实适用于预制动画。如果您希望动画跟随光标移动或中途停止,这不是您想要的。
方案二 -- 使用javascript直接操作top
和left
或者transform
和变换 3d
。您将在 requestAnimationFrame
设置的函数中执行此操作。在该函数结束时,您将再次调用 requestionAnimationFrame
。每次通过该方法,您都会更新对象当时应该位于的位置。
优点:细粒度控制。它可以动态响应正在发生的事件,并在动画中间改变它的路线。如果编写得当,它显然比 CSS 解决方案性能更高(尽管您的场景可能不够复杂,无法注意到这一优势)。
缺点:随着控制而来的是责任。管理场景可能很复杂,而且让对象以 8 字形模式移动可能有点矫枉过正。但它确实开辟了新的前景。
解决方案三 -- 使用为您处理这些内容的库。
如果这是我们要做的很多事情,那么有一些用于复杂动画的不错的工具包 -- Greensock , 例如。我肯定会看看现有的动画工具包,因为它们将真正帮助您的代码在许多不同的平台上工作。它们还将有助于解决不可避免的性能瓶颈。
优点:让其他人管理动画的复杂性。他们已经解决了您可能会遇到的问题。
缺点:矫枉过正是一件有趣的事情。让您的第三方库的存在取代您自己做的单调乏味,而不是简单地取代您对自己如何做的缺乏了解。
关于javascript - 在网页上自动移动对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30308288/