当前位置:首页 > JavaScript

js实现动画案例

2026-03-15 14:14:42JavaScript

使用 CSS 和 JavaScript 实现基础动画

通过 JavaScript 动态修改元素的 CSS 属性可以实现平滑的动画效果。例如,移动一个方块从左侧到右侧:

const box = document.getElementById('box');
let position = 0;
function animate() {
  position += 2;
  box.style.left = position + 'px';
  if (position < 300) requestAnimationFrame(animate);
}
requestAnimationFrame(animate);

对应的 HTML 和 CSS:

<div id="box" style="width:50px; height:50px; background:red; position:absolute;"></div>

使用 Web Animation API

现代浏览器支持 Web Animation API,提供更精细的控制:

js实现动画案例

const element = document.getElementById('animated');
element.animate([
  { transform: 'translateX(0px)', opacity: 1 },
  { transform: 'translateX(300px)', opacity: 0.5 }
], {
  duration: 1000,
  iterations: Infinity,
  direction: 'alternate'
});

使用 GSAP 高级动画库

GSAP(GreenSock Animation Platform)是专业的动画库,适合复杂场景:

gsap.to(".box", {
  x: 200,
  duration: 1,
  rotation: 360,
  ease: "bounce.out"
});

Canvas 动画实现

通过 Canvas 绘制逐帧动画:

js实现动画案例

const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
let x = 0;

function draw() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.fillRect(x, 50, 50, 50);
  x = (x + 2) % canvas.width;
  requestAnimationFrame(draw);
}
draw();

SVG 动画示例

结合 JavaScript 操作 SVG 属性:

const circle = document.getElementById('svg-circle');
let radius = 10;
function pulse() {
  radius = (radius === 10) ? 20 : 10;
  circle.setAttribute('r', radius);
  setTimeout(pulse, 500);
}
pulse();

动画性能优化技巧

使用 transformopacity 属性触发硬件加速,避免频繁重排。优先使用 requestAnimationFrame 而非 setTimeout 保证流畅性。复杂动画建议使用 CSS will-change 属性预声明变化。

响应式动画控制

通过事件监听实现交互式动画:

const btn = document.getElementById('toggle');
const box = document.getElementById('animated-box');

btn.addEventListener('click', () => {
  box.style.animationPlayState = 
    box.style.animationPlayState === 'paused' ? 'running' : 'paused';
});

标签: 案例动画
分享给朋友:

相关文章

css3动画在线制作

css3动画在线制作

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

js实现动画

js实现动画

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

uniapp 退场动画

uniapp 退场动画

实现退场动画的方法 在UniApp中实现退场动画可以通过CSS动画、Vue过渡效果或第三方动画库完成。以下是几种常见方法: 使用CSS动画 通过定义@keyframes和animation属性实现退…

vue动画实现折叠

vue动画实现折叠

使用 Vue Transition 实现折叠动画 在 Vue 中可以通过 <transition> 组件和 CSS 过渡实现折叠效果。核心原理是动态切换元素的 height 属性,配合 o…

vue实现动画代码

vue实现动画代码

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,包括内置过渡组件、CSS 动画库集成以及第三方动画库结合。以下是几种常见实现方法: 使用 Vue 内置过渡组件 Vue 的 <tran…

点击实现vue动画

点击实现vue动画

在Vue中实现动画效果可以通过内置的<transition>和<transition-group>组件结合CSS或JavaScript钩子完成。以下是具体方法: 使用CSS过…