控制时间轴顺序与嵌套
Anime.js 的时间轴功能非常强大,除了基本的顺序执行,还支持复杂的时间控制与嵌套,方便你打造多层次的动画效果。
顺序控制
使用时间轴的 add() 方法时,可以通过第二个参数控制动画的开始时间:
- 相对时间:例如
'-=500'表示提前 500ms 开始 - 绝对时间:指定精确的开始时间(毫秒)
const tl = anime.timeline({
easing: "easeOutQuad",
duration: 800,
});
tl.add({ targets: ".box1", translateX: 250 })
.add({ targets: ".box2", translateY: 50 }, "-=400") // 与前一个动画重叠400ms
.add({ targets: ".box3", opacity: 0.5 }, 1000); // 绝对时间1秒后开始
嵌套时间轴
时间轴可以嵌套,允许将一个时间轴作为另一个时间轴的动画目标,实现更复杂的动画管理:
const childTl = anime.timeline();
childTl.add({ targets: ".box2", rotate: "1turn" });
const parentTl = anime.timeline();
parentTl.add({ targets: ".box1", translateX: 200 }).add(childTl, "-=300"); // 嵌套子时间轴
小结
通过灵活的时间参数和嵌套机制,可以精确控制动画的顺序与层级,打造高质量交互动画。
示例演示
源码
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<title>Anime.js 时间轴顺序与嵌套示例</title>
<style>
.box1,
.box2,
.box3 {
width: 50px;
height: 50px;
margin: 10px;
display: inline-block;
border-radius: 5px;
user-select: none;
}
.box1 {
background-color: #4FC08D;
}
.box2 {
background-color: #F67280;
}
.box3 {
background-color: #355C7D;
}
#startBtn {
display: block;
margin: 20px auto;
padding: 8px 16px;
font-size: 16px;
cursor: pointer;
border-radius: 6px;
border: none;
background-color: #4FC08D;
color: white;
transition: background-color 0.3s;
}
#startBtn:hover {
background-color: #3a9d6f;
}
</style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<button id="startBtn">点击开始动画</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script>
var childTl = anime.timeline({
autoplay: false
});
childTl.add({
targets: ‘.box2’,
rotate: ‘1turn’,
duration: 1000
});
var parentTl = anime.timeline({
autoplay: false
});
parentTl
.add({
targets: '.box1',
translateX: 200,
duration: 1000
})
.add(childTl, '-=300');
document.getElementById('startBtn').onclick = function () {
parentTl.restart();
};
</script>
</body>
</html>
相关内容
- Anime.js 简介 本节介绍 Anime.js 是什么,它是一款轻量级、功能丰富的 JavaScript 动画库,适用于构建现代网页中的各种动效。通过 Anime.js,开发者可以...
- 引入方式 本节介绍如何将 Anime.js 应用到你的项目中,包括使用 CDN、NPM 安装以及与构建工具和框架集成的方法,帮助你根据项目需求选择最佳的引入方式。
- 目标元素 targets 本节介绍 Anime.js 中 targets 的使用方法,包括选择器、DOM 节点、NodeList、数组等不同形式的目标设置方式,并讲解如何同时对多个元素进...
- 常用属性动画 本节介绍 Anime.js 中最常用的动画属性,包括位移、缩放、旋转、透明度、颜色等,帮助开发者快速掌握实际动画制作中的常见属性及应用技巧。
- 基本参数设置 本节介绍 Anime.js 动画的基础参数配置,包括持续时间、延迟、缓动函数、循环、方向等,帮助开发者灵活控制动画表现。
- 事件监听 本节介绍 Anime.js 中动画事件监听机制,包括动画开始、更新、完成和停止等事件的使用方法,帮助开发者灵活响应动画状态变化。