web animation API 锋利的css动画控制器 (更新中)

什么是web animation api 以及为什么要使用web animation api?

web animation API 是web页面中控制DOM元素动画效果的javascript原生API。

  1. 它能够逐个关键帧控制动画效果,
  2. 具有Timeline 机制‌能通过javascript来实现动画的暂停,播放,回溯等功能
  3. 能够通过javascript的事件监听动画的播放与完成,对动画的控制具有极高的细粒度。
  4. 另外它共用css animation的渲染引擎,所以具有极高的性能。

如何使用

基本使用方式

最直观的使用方式是

javascript 复制代码
const myAnimation = document.getElementById('id').animate(AnimationEffect,Options)

直接调用某个dom元素的animate函数,其中

  1. AnimationEffect 即keyframes object,等同于在css中使用 @keyframes
  2. Options里面是当前effect的配置项,常用配置项主要有:duration 动画播放时长, delay 时间延迟多久开始播, easing: 动画缓解曲线, iterations 播放次数
css 复制代码
#alice {
  animation: aliceTumbling infinite 3s linear;
}

@keyframes aliceTumbling {
  0% {
    color: #000;
    transform: rotate(0) translate3D(-50%, -50%, 0);
  }
  30% {
    color: #431236;
  }
  100% {
    color: #000;
    transform: rotate(360deg) translate3D(-50%, -50%, 0);
  }
}

以上css我们可以使用如下js进行覆盖

javascript 复制代码
const myAnimation = document.getElementById("alice").animate(
  [
    { transform: "rotate(0) translate3D(-50%, -50%, 0)", color: "#000" },
    { color: "#431236", offset: 0.3 },
    { transform: "rotate(360deg) translate3D(-50%, -50%, 0)", color: "#000" },
  ],
  {
    duration: 3000,
    iterations: Infinity,
  },
);

myAnimation.pause()

如果是通过上述方式实现(即 element.animate(...)) 会立马执行animation若想随后执行需要调用pause: myAnimation.pause() 然后在需要调用的时机执行: myAnimation.play()

Group Animation

待续

最佳实践

待续

相关推荐
小李子呢02113 小时前
前端八股Vue(5)---v-if和v-show
前端·javascript·vue.js
yuki_uix3 小时前
跨域与安全:CORS、HTTPS 与浏览器安全机制
前端·面试
用户3153247795453 小时前
React19项目中 FormEdit / FormEditModal 组件封装设计说明
前端·react.js
陆枫Larry3 小时前
Git 合并冲突实战:`git pull` 失败与 `pull.ff=only` 的那些事
前端
江南月3 小时前
让智能体边想边做:从 0 理解 ReActAgent 的工作方式
前端·人工智能
YiuChauvin3 小时前
vue2中使用 AntV G6
javascript·vue.js
袋鱼不重3 小时前
Hermes Agent 安装与实战:从安装到与 OpenClaw 全方位对比
前端·后端·ai编程
汉秋3 小时前
iOS 自定义 UICollectionView 拼图布局 + 布局切换动画实践
前端
江南月3 小时前
让智能体学会自我改进:从 0 理解 ReflectionAgent 的迭代优化
前端·人工智能