使用Anime.js的基于JavaScript的动画,第2部分:参数

本文是Anime.js教程的第二部分,主要介绍如何使用Anime.js的参数来精确控制动画的时机和节奏。包括属性参数、基于函数的参数和动画参数,讲解了如何设置延迟、持续时间和缓动效果,以及如何根据目标元素的属性和位置来定制动画效果。
摘要由CSDN通过智能技术生成

Anime.js系列第一篇教程中 ,您了解了指定要设置动画的目标元素的各种方法以及可以动画化CSS属性和DOM属性的种类。 上一教程中的动画非常基础。 所有目标元素都只是移动一定距离或以固定速度更改边界半径。

有时,您可能需要以更有节奏的方式为目标元素设置动画。 例如,您可能要从左到右移动十个不同的元素,每个元素在动画开始之间的延迟为500ms。 同样,您可能希望根据每个元素的位置来增加或减少其动画持续时间。

在本教程中,您将学习如何使用Anime.js使用特定参数正确地计时不同元素的动画时间。 这将允许您控制单个元素或所有元素的动画序列的播放顺序。

属性参数

这些参数使您可以一次控制单个属性或一组属性的持续时间,延迟和缓动。 durationdelay参数以毫秒为单位。 持续时间的默认值为1000ms或1s。

这意味着,除非另有说明,否则应用于元素的任何动画将播放1秒。 delay参数指定了触发动画后动画开始播放的时间。 延迟的默认值为0。这意味着动画将在被触发后立即开始。

您可以使用easing参数来控制动画在其激活期间的播放速率。 一些动画从慢开始,在中间加快速度,然后在最后再次慢下来。 其他人则以良好的步伐开始,然后在其余时间里变慢。

但是,在所有情况下,动画总是在使用duration参数指定的duration内完成。 Anime.js提供了许多缓动功能,您可以仅通过使用其名称直接将其应用于元素。 对于某些缓动功能,还可以为elasticity参数设置一个值,以控制元素值像弹簧一样来回弹跳的程度。

您将在本系列的最后一篇教程中了解有关不同缓动功能的更多信息。 以下代码段显示了如何将所有这些参数应用于不同的动画。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以使用Anime.js来为你创建一个具有连续动作的动态火柴人动画。请确保已经在HTML文件中引入了Anime.js库,然后可以使用以下代码: ```html <!DOCTYPE html> <html> <head> <title>火柴人动画</title> <style> #canvas { width: 400px; height: 400px; border: 1px solid black; } </style> </head> <body> <div id="canvas"></div> <script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script> <script> const canvas = document.getElementById('canvas'); const animation = anime.timeline({ autoplay: true, loop: true, }); const drawStickMan = () => { const stickMan = document.createElement('div'); stickMan.classList.add('stickman'); canvas.appendChild(stickMan); }; drawStickMan(); animation .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -80, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: 360, duration: 1000 }, ], easing: 'linear', }) .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -40, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: -360, duration: 1000 }, ], easing: 'linear', }) .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -80, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: 360, duration: 1000 }, ], easing: 'linear', }); </script> </body> </html> ``` 在上述代码中,我们使用了Anime.js来创建一个时间轴(timeline),并为火柴人动画添加了一系列连续的动作。在`drawStickMan`函数中,我们创建了一个`div`元素,添加了`stickman`类,并将其附加到Canvas容器中。然后,我们使用Anime.js的时间轴来定义火柴人的动作序列。每个动作都使用`targets`属性指定要应用动画的元素,这里是具有`stickman`类的div元素。通过指定`translateY`和`rotateZ`属性,我们定义了火柴人在垂直和水平方向上的移动和旋转动画效果。我们还设置了持续时间和缓动效果。 你可以根据需要调整动画效果,例如修改持续时间、添加更多动作等。同时,你也可以通过添加CSS样式来美化火柴人的外观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值