当前位置:首页 > JavaScript

js实现动画

2026-01-12 12:49:54JavaScript

使用 CSS 动画与 JavaScript 控制

通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classList 控制动画状态。

/* CSS 定义 */
.animate {
  animation: fadeIn 2s ease-in-out;
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
// JavaScript 触发
const element = document.getElementById('target');
element.classList.add('animate');

使用 requestAnimationFrame

手动控制每一帧的渲染,适合复杂动画逻辑。通过递归调用实现连续动画。

function animate(element, duration) {
  const start = performance.now();
  function update(time) {
    const elapsed = time - start;
    const progress = Math.min(elapsed / duration, 1);
    element.style.transform = `translateX(${progress * 200}px)`;
    if (progress < 1) {
      requestAnimationFrame(update);
    }
  }
  requestAnimationFrame(update);
}
animate(document.getElementById('box'), 1000);

使用 Web Animations API

原生支持的动画 API,可直接操作动画属性和时间。

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

使用第三方库(如 GSAP)

GSAP 提供更强大的时间轴控制和复杂动画序列。

gsap.to("#target", {
  x: 100,
  duration: 1,
  rotation: 360,
  ease: "bounce.out"
});

性能优化建议

避免频繁触发重排和重绘。使用 transformopacity 属性(硬件加速),减少动画元素的数量,必要时使用 will-change 提示浏览器。

.target {
  will-change: transform, opacity;
}

js实现动画

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

相关文章

vue 动画实现

vue 动画实现

Vue 动画实现方式 Vue 提供了多种方式实现动画效果,主要分为内置组件和第三方库集成。 使用 Vue 内置过渡组件 Vue 的 <transition> 和 <transit…

vue点击实现动画

vue点击实现动画

Vue 中实现点击动画的方法 使用 Vue 过渡(Transition)组件 Vue 提供了内置的 <transition> 组件,可以轻松实现元素进入/离开的动画效果。结合 v-if 或…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

css3动画在线制作

css3动画在线制作

CSS3 动画在线制作工具 以下是一些常用的在线工具和平台,可以帮助快速生成 CSS3 动画代码,无需手动编写: Animista 网址:https://animista.net/ 特点:提供预设…

css3制作简单动画

css3制作简单动画

CSS3 制作简单动画的方法 CSS3 提供了多种方式制作动画,主要通过 transition、transform 和 animation 属性实现。以下是几种常见的实现方法。 使用 transit…