事件监听
Anime.js 支持多种事件回调,开发者可以通过这些事件监听动画生命周期中的不同阶段,实现更复杂的交互逻辑。
主要事件回调
begin— 动画开始时触发update— 动画每一帧更新时触发complete— 动画完成时触发loopBegin— 循环开始时触发loopComplete— 循环结束时触发changeBegin— 属性改变开始时触发changeComplete— 属性改变完成时触发
示例代码
打开F12,查看浏览器输出:
anime({
targets: ".box",
translateX: 250,
duration: 1500,
loop: true,
direction: "alternate",
begin: () => console.log("动画开始"),
update: (anim) => console.log(`当前进度: ${anim.progress.toFixed(2)}%`),
complete: () => console.log("动画完成"),
});
使用场景
- 动画开始时执行初始化操作
- 动画进行中更新状态或 UI
- 动画结束时触发后续动作
小结
事件监听为动画提供了丰富的钩子,方便开发者根据动画进度控制逻辑,增强交互体验。
示例演示
源码
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<title>Anime.js 事件监听示例</title>
<style>
.box {
width: 60px;
height: 60px;
background-color: #4fc08d;
margin: 40px;
border-radius: 6px;
display: inline-block;
user-select: none;
line-height: 60px;
text-align: center;
color: white;
font-weight: bold;
}
</style>
</head>
<body>
<div class="box">动画盒子</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script>
anime({
targets: ".box",
translateX: 250,
duration: 1500,
loop: true,
direction: "alternate",
begin: () => console.log("动画开始"),
update: (anim) => console.log(`当前进度: ${anim.progress.toFixed(2)}%`),
complete: () => console.log("动画完成"),
});
</script>
</body>
</html>
相关内容
- Anime.js 简介 本节介绍 Anime.js 是什么,它是一款轻量级、功能丰富的 JavaScript 动画库,适用于构建现代网页中的各种动效。通过 Anime.js,开发者可以...
- 引入方式 本节介绍如何将 Anime.js 应用到你的项目中,包括使用 CDN、NPM 安装以及与构建工具和框架集成的方法,帮助你根据项目需求选择最佳的引入方式。
- 目标元素 targets 本节介绍 Anime.js 中 targets 的使用方法,包括选择器、DOM 节点、NodeList、数组等不同形式的目标设置方式,并讲解如何同时对多个元素进...
- 常用属性动画 本节介绍 Anime.js 中最常用的动画属性,包括位移、缩放、旋转、透明度、颜色等,帮助开发者快速掌握实际动画制作中的常见属性及应用技巧。
- 基本参数设置 本节介绍 Anime.js 动画的基础参数配置,包括持续时间、延迟、缓动函数、循环、方向等,帮助开发者灵活控制动画表现。
- 使用 timeline 创建序列动画 本节介绍如何使用 Anime.js 的 timeline 功能创建复杂的序列动画,实现多个动画按顺序或重叠执行,灵活控制动画时间轴。