当前位置:首页 > JavaScript

js 实现动画

2026-02-01 19:20:56JavaScript

使用 CSS 动画

通过 @keyframes 定义动画,再通过 JavaScript 动态添加或移除 CSS 类来触发动画。

// 定义 CSS 动画(通常在样式表中)
/*
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.fade-in { animation: fadeIn 1s; }
*/

// JavaScript 触发动画
const element = document.getElementById('target');
element.classList.add('fade-in');

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

使用 requestAnimationFrame

适合需要精细控制的复杂动画,例如游戏或物理效果。

let startTime = null;
function animate(timestamp) {
  if (!startTime) startTime = timestamp;
  const progress = timestamp - startTime;
  const element = document.getElementById('target');
  element.style.transform = `translateX(${Math.min(progress / 10, 200)}px)`;
  if (progress < 2000) {
    requestAnimationFrame(animate);
  }
}
requestAnimationFrame(animate);

使用 Web Animations API

现代浏览器支持的 API,可直接通过 JavaScript 控制动画。

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

使用 GSAP 等第三方库

GreenSock Animation Platform (GSAP) 提供更强大的动画控制。

// 引入 GSAP 后使用
gsap.to('#target', {
  x: 100,
  duration: 1,
  ease: 'power2.out'
});

使用 setIntervalsetTimeout

简单动画的替代方案,但性能不如 requestAnimationFrame

js 实现动画

let position = 0;
const interval = setInterval(() => {
  position += 1;
  document.getElementById('target').style.left = `${position}px`;
  if (position >= 100) clearInterval(interval);
}, 16);

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

相关文章

vue实现gif动画

vue实现gif动画

Vue 中实现 GIF 动画的方法 在 Vue 中实现 GIF 动画可以通过多种方式完成,具体取决于需求和使用场景。以下是几种常见的方法: 直接使用 <img> 标签加载 GIF 最简单…

vue的动画实现

vue的动画实现

Vue 动画实现方式 Vue 提供了多种方式实现动画效果,主要包括内置组件和第三方库。 使用 <transition> 和 <transition-group> Vue 内置…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

vue实现gif动画

vue实现gif动画

在Vue中实现GIF动画 使用<img>标签直接引入GIF文件 在Vue组件中,可以直接通过<img>标签引入GIF文件。确保GIF文件已放置在项目的静态资源目录(如publ…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…