CSS动画指利用CSS样式属性来实现元素动画的技术。
/* 例子:利用CSS实现一个简单的动画 */ div { width: 50px; height: 50px; background-color: red; animation-name: move; animation-duration: 2s; animation-iteration-count: infinite; animation-direction: alternate; } @keyframes move { 0% { transform: translateX(0); } 100% { transform: translateX(100px); } }
事件动画则是利用JavaScript来实现动画效果,通常是依赖于浏览器提供的requestAnimationFrame函数。
/* 例子:利用JavaScript实现一个简单的动画 */ var element = document.querySelector('div'); var position = 0; function animate() { position += 1; element.style.left = position + 'px'; if (position< 100) { requestAnimationFrame(animate); } } animate();
虽然两种动画方式都可以实现动态效果,但是它们的应用场景并不完全相同。CSS动画适用于一些简单的动画效果,如过渡、旋转、缩放等,效果相对较为平滑;事件动画则适用于复杂的动画效果,如物体碰撞、鼠标交互等,因为它能够控制更为灵活,效果更具有多样性。