📅  最后修改于: 2023-12-03 15:29:24.498000             🧑  作者: Mango
Anime.js 是一款强大的 JavaScript 动画引擎,可以用于各种动画效果的创建。 它可以让您通过简单的 JavaScript 代码快速创建自然的、流畅的动画。Anime.js 支持各种属性、缓动、循环和回调函数,使其非常灵活实用。
使用 Anime.js 创建动画非常地简单,只需要包含 anime.min.js 文件,并编写简单的 JavaScript 代码即可,下面是一个例子:
// 创建一个 anime 对象来动画 <div id="mydiv"> 元素
var mydiv = document.getElementById('mydiv');
var animeObj = anime({
targets: mydiv,
translateX: 250,
translateY: 50,
scale: 2,
duration: 2000,
easing: 'easeInOutQuad'
});
通过这段代码,我们创建了一个 Anime.js 对象,并动画了一个 div 元素,让它向右移动 250 像素、向上移动 50 像素、放大 2 倍,并且持续 2 秒钟,并采用了定义好的缓动函数。
下面我们来看看 Anime.js 支持哪些动画效果:
您可以通过 Anime.js 动画 CSS 属性,例如:
anime({
targets: '.box',
width: '50%',
opacity: 0.7,
rotateZ: '180deg',
backgroundColor: '#FFF',
color: '#000',
borderRadius: ['0em', '2em'],
easing: 'easeInOutQuad',
duration: 1000
});
Anime.js 支持动画 SVG,例如:
anime({
targets: '#lines polyline',
strokeDashoffset: [anime.setDashoffset, 0],
easing: 'linear',
duration: 1500,
delay: function(el, i) { return i * 250 },
direction: 'alternate',
loop: true
});
Anime.js 支持动画任何 DOM 属性,例如:
anime({
targets: 'input[type="range"]',
value: 100,
duration: 1000,
round: 1,
easing: 'easeInOutExpo'
});
Anime.js 支持动画 JavaScript 对象的属性,例如:
// 创建一个带有两个属性的对象,并为它们设置动画效果
var myObject = { x: 0, y: 0 };
anime({
targets: myObject,
x: 250,
y: 50,
easing: 'easeInOutQuad'
});
缓动函数是用来控制动画的速度,Anime.js 默认提供了一些缓动函数,例如:linear、easeInQuad、easeOutQuad、easeInOutQuad 等等,您也可以自己定义缓动函数。例如:
// 定义一个缓动函数
function myBezier(x, t, b, c, d) {
return c * (x /= d) * x * x + b;
}
// 使用上面的缓动函数进行动画
anime({
targets: 'div',
x: 300,
easing: myBezier
});
你也可以把多个动画效果链接起来,运行多个动画过程,例如:
var mydiv = document.getElementById('mydiv');
// 依次执行三个动画效果
anime({
targets: mydiv,
translateX: 250,
duration: 1000
})
.add({
translateY: 50,
duration: 1000,
offset: 0
})
.add({
scale: 2,
duration: 1000,
offset: 0
});
Anime.js 不仅支持动画效果的创建,还支持对动画效果的自由控制,例如:
var myAnimation = anime({
targets: '.box',
translateX: '50vw',
autoplay: false // 创建之后不自动播放动画
});
function playAnimation() { myAnimation.play(); }
function pauseAnimation() { myAnimation.pause(); }
通过这个例子,我们创建一个控制动画的 myAnimation 对象,通过控制该对象的 play() 和 pause() 函数,可以自由地控制动画的播放。更多功能详见 Anime.js 的文档 。
Anime.js 是一个易学易用、功能丰富的 JavaScript 动画引擎,支持多种动画效果,自定义缓动函数,多个动画效果的链接以及自由控制动画,是前端开发人员必备的工具之一。