关于 animejs
面向 HyperFrames 的 Anime.js 技能,指导将动画实例注册到运行时并由 HyperFrames 时间驱动,适用于 SVG 和 DOM 微动效。
主要功能
- 01通过 animejs 适配器定位动画实例
- 02关闭 autoplay 并注册实例
- 03要求动画使用有限时长和循环次数
- 04提供基础动画与时间线模式
适用场景
- 01制作 SVG 或 DOM 微动效
- 02将 Anime.js 示例改为时间驱动
- 03注册多个独立动画实例
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ heygen-com/ hyperframes --skill animejs安装后在 Claude Code 中输入/animejs确认已加载。
详细介绍
Anime.js for HyperFrames
HyperFrames 可通过其 animejs 运行时适配器控制 Anime.js 实例的时间。组合负责动画对象;HyperFrames 负责时钟。
约定
- 在组合初始化期间同步创建动画或时间线。
- 设置
autoplay: false,避免 Anime.js 使用自己的时钟推进动画。 - 将每个返回的动画或时间线注册到
window.__hfAnime。 - 使用有限的时长和循环次数。
- 避免使用依赖挂钟时间、网络状态或未设种子随机数来修改 DOM 的回调。
适配器通过 instance.seek(timeMs) 控制每个已注册的实例,其中 timeMs 是 HyperFrames 的时间,单位为毫秒。
基本模式
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/anime.iife.min.js"></script>
<script>
const anim = anime({
targets: ".mark",
translateX: 280,
rotate: "1turn",
opacity: [0, 1],
duration: 1200,
easing: "easeOutExpo",
autoplay: false,
});
window.__hfAnime = window.__hfAnime || [];
window.__hfAnime.push(anim);
</script>
时间线模式
<script>
const tl = anime.timeline({
autoplay: false,
easing: "easeOutCubic",
});
tl.add({
targets: ".title",
translateY: [40, 0],
opacity: [0, 1],
duration: 650,
}).add(
{
targets: ".accent",
scaleX: [0, 1],
duration: 450,
},
250,
);
window.__hfAnime = window.__hfAnime || [];
window.__hfAnime.push(tl);
</script>
模块构建版本
如果使用 ES 模块构建版本,适配器不关心实例是如何创建的。它只要求返回的对象提供 seek()、pause(),并且最好提供 play():
<script type="module">
import { animate } from "https://cdn.jsdelivr.net/npm/animejs/+esm";
const anim = animate(".chip", {
x: "18rem",
duration: 900,
autoplay: false,
});
window.__hfAnime = window.__hfAnime || [];
window.__hfAnime.push(anim);
</script>
适用场景
- Anime.js 语法简洁的 SVG 和 DOM 小型修饰动画。
- 可以改为由时间驱动的 Anime.js 示例。
- 将多个独立的微动画推入同一个注册表。
除非用户明确要求使用 Anime.js,否则复杂的场景编排请使用 GSAP。GSAP 仍是 HyperFrames 的主要创作方式。
避免
- 保留 Anime.js 默认的
autoplay设置。 - 依赖
anime.running自动发现,而不显式调用window.__hfAnime.push(...)。 - 使用无限循环。请根据组合时长计算有限的重复次数。
- 在计时器、Promise、事件处理程序中,或异步资源加载完成后创建动画。
验证
编辑使用 Anime.js 的组合后:
npx hyperframes lint
npx hyperframes validate
致谢与参考
- HyperFrames 适配器源代码:
packages/core/src/runtime/adapters/animejs.ts。 - Anime.js 关于
autoplay、pause()和seek()的文档:https://animejs.com/documentation/
评论
支持 Markdown