当前位置:首页 > 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

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

js实现动画

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,可直接操作动画属性和时间。

js实现动画

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
分享给朋友:

相关文章

vue怎么实现动画

vue怎么实现动画

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,包括内置过渡系统、第三方库集成以及 CSS 动画。以下是常见实现方法: 使用 Vue 过渡系统 通过 <transition>…

vue动画实现

vue动画实现

Vue动画实现方法 Vue提供了多种方式实现动画效果,主要通过内置组件和第三方库完成。 使用<transition>组件 Vue内置的<transition>组件可以为元素…

vue加载动画实现

vue加载动画实现

Vue 加载动画的实现方法 在 Vue 中实现加载动画可以通过多种方式完成,以下是一些常见的方法: 使用 CSS 动画 通过 CSS 定义动画效果,结合 Vue 的动态类绑定或条件渲染控制动画的显…

vue实现共享动画

vue实现共享动画

Vue 共享动画实现方法 使用 Vue Transition 组件 Vue 内置的 Transition 组件可以实现元素进入/离开的过渡效果。通过命名过渡和 mode 属性可以控制多个元素的过渡顺序…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…