当前位置: 首页 > news >正文

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的渲染引擎,所以具有极高的性能。

如何使用

基本使用方式

最直观的使用方式是

const myAnimation = document.getElementById('id').animate(AnimationEffect,Options)

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

  1. AnimationEffect 即keyframes object,等同于在css中使用 @keyframes
  2. Options里面是当前effect的配置项,常用配置项主要有:duration 动画播放时长, delay 时间延迟多久开始播, easing: 动画缓解曲线, iterations 播放次数
#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进行覆盖

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

待续

最佳实践

待续

http://www.xdnf.cn/news/391627.html

相关文章:

  • Python高级爬虫之JS逆向+安卓逆向2.1节: 网络爬虫核心原理
  • 【c++】【数据结构】二叉搜索树详解
  • InnoDB引擎
  • JVM规范之运行时数据区域
  • 【沉浸式求职学习day36】【初识Maven】
  • 低功耗蓝牙BLE之发射功率(mW/dBm)对应关系
  • jna总结1
  • 26考研——中央处理器_指令流水线_指令流水线的基本概念 流水线的基本实现(5)
  • 在C++中,符号位是否参与位运算
  • BUUCTF——Ezpop
  • [Java实战]Spring Boot 静态资源配置(十三)
  • Appium-OppoA92S-真机记坑
  • ARP协议的工作原理
  • Linux `uname` 指令终极指南
  • 无需大规模重训练!GraspCorrect:VLM赋能机器人抓取校正,抓取成功率提升18.3%
  • 如何使用 Netstat 查看监听端口
  • 环形链表(简单)
  • 谈程序的地址空间
  • 智能座舱开发工程师面试题
  • 代码随想录算法训练营第六十天| 图论7—卡码网53. 寻宝
  • 《AI大模型应知应会100篇》第55篇:大模型本地开发环境搭建
  • 机器人运动控制原理浅析-UC Berkeley超视觉模态模型
  • LangGraph框架中针对MCP协议的变更-20250510
  • android-ndk开发(12): 获取ndk内置clang的版本详情
  • git 报错:错误:RPC 失败。curl 28 Failed to connect to github.com port 443 after 75000
  • YashanDB(崖山数据库)V23.4 LTS 正式发布
  • 用户态到内核态:Linux信号传递的九重门(一)
  • Kubernetes基础(三十二):Worker节点启动全解析
  • 无人机飞控算法开发实战:从零到一构建企业级飞控系统
  • [Linux]从零开始的STM32MP157 Busybox根文件系统构建