前端动画实现

前端动画实现涉及多种技术和方法,从简单的CSS过渡到复杂的Canvas动画,各有其适用场景。

实现方式

CSS Transition

属性变化的平滑过渡,适合简单交互效果

CSS Animation

关键帧动画,适合循环或复杂序列动画

JavaScript控制

requestAnimationFrame,精确控制动画流程

动画库

GSAP、Anime.js等专业动画库

实现示例

/* CSS过渡动画 */ .button { background-color: blue; transition: background-color 0.3s ease; } .button:hover { background-color: red; } /* CSS关键帧动画 */ @keyframes slideIn { 0% { transform: translateX(-100px); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } } .slide-element { animation: slideIn 0.5s ease-out; } /* JavaScript动画 */ function animateElement(element, duration) { let start = null; requestAnimationFrame(step); function step(timestamp) { if (!start) start = timestamp; const progress = Math.min((timestamp - start) / duration, 1); // 使用缓动函数 const easedProgress = easeInOutQuad(progress); // 更新元素样式 element.style.transform = `translateX(${easedProgress * 100}px)`; if (progress < 1) { requestAnimationFrame(step); } } } /* 缓动函数 */ function easeInOutQuad(t) { return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2; }
← Animation Principles Animation Backend →