当前位置:首页 > JavaScript

js实现css3动画

2026-04-04 08:27:54JavaScript

使用 JavaScript 触发 CSS3 动画

JavaScript 可以通过操作 DOM 元素的类名或直接修改样式来触发 CSS3 动画。CSS3 动画通常通过 @keyframes 定义,再通过 animation 属性应用到元素上。

方法 1:通过添加/移除类名触发动画

定义 CSS 动画和类名:

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.animate-fadeIn {
  animation: fadeIn 1s ease-in-out;
}

JavaScript 代码:

const element = document.getElementById('target');
element.classList.add('animate-fadeIn');

// 动画结束后移除类名(可选)
element.addEventListener('animationend', () => {
  element.classList.remove('animate-fadeIn');
});

方法 2:直接修改元素的 style 属性

JavaScript 代码:

const element = document.getElementById('target');
element.style.animation = 'fadeIn 1s ease-in-out';

方法 3:动态创建并插入 @keyframes

通过 JavaScript 动态创建样式表并插入 @keyframes

const style = document.createElement('style');
style.innerHTML = `
  @keyframes slideIn {
    from { transform: translateX(-100%); }
    to { transform: translateX(0); }
  }
`;
document.head.appendChild(style);

const element = document.getElementById('target');
element.style.animation = 'slideIn 0.5s ease-out';

方法 4:使用 animate() API

现代浏览器支持 Web Animations API,无需 CSS 即可创建动画:

const element = document.getElementById('target');
element.animate(
  [
    { opacity: 0 },
    { opacity: 1 }
  ],
  {
    duration: 1000,
    easing: 'ease-in-out',
    iterations: 1
  }
);

方法 5:控制动画播放状态

通过 JavaScript 控制动画的播放、暂停等状态:

js实现css3动画

const element = document.getElementById('target');
element.style.animation = 'fadeIn 2s ease-in-out forwards';
element.style.animationPlayState = 'paused';

// 播放动画
element.style.animationPlayState = 'running';

// 重置动画
element.style.animation = 'none';
element.offsetHeight; // 触发重绘
element.style.animation = 'fadeIn 2s ease-in-out forwards';

注意事项

  • 确保动画性能优化,优先使用 transformopacity 属性。
  • 考虑浏览器兼容性,必要时添加前缀(如 -webkit-)。
  • 对于复杂动画序列,可以使用 animation-delay 或 Promise 链式调用。
  • 监听 animationstartanimationiterationanimationend 事件以实现更精细的控制。

标签: 动画js
分享给朋友:

相关文章

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

vue动画实现原理

vue动画实现原理

Vue动画实现原理 Vue的动画系统基于CSS过渡和动画,结合Vue的响应式系统,提供声明式的方式管理元素进入/离开的动画效果。核心原理分为以下几个部分: 过渡类名自动应用 Vue在元素插入/删除时…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…