前端实现动画的六种方式,够用!
作者:应用开发 来源:系统运维 浏览: 【大中小】 发布时间:2025-11-05 11:21:45 评论数:
引言
动画基本上分类两类:补间动画和帧动画。够用
补间动画:补齐中间的前端动画。由浏览器帮助补齐中间的实现状态,开发者只需要定义开始和结束的动画的种状态。

帧动画:除了开始与结束状态,够用开发者还可以定义中间关键帧的前端状态,可以制作复杂的实现动画。
通常在前端中,动画的种实现动画的够用方案主要有6种:
javascript直接实现;SVG(可伸缩矢量图形);CSS3 transition;(补间动画)CSS3 animation;(帧动画)Canvas动画;requestAnimationFrame;javascript 直接实现动画
其主要思想是通过setInterval或setTimeout方法的免费信息发布网回调函数来持续调用改变某个元素的CSS样式以达到元素样式变化的效果。
示例
* {
margin:0;
padding:0;
}
div {
width: 200px;
height: 200px;
background-color: #ccc;
}
window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame;
let elem = document.getElementById("rect");
let left = 0;
//自动执行持续性回调
requestAnimationFrame(step);
//持续该改变元素位置
function step() {
if(left
left+=1;
elem.style.marginLeft = left+"px";
requestAnimationFrame(step);
}
}
复制代码我们注意到,前端 requestAnimationFrame 只是实现 将回调的方法传入到自身的参数中执行 ,而不是动画的种通过 setInterval 调用。你要知道,够用无论是前端 setInterval() 还是 setTimeout() 都不十分精确。为它们传入的实现第二个参数,亿华云计算实际上只是指定了把动画代码添加到浏览器UI线程队列中以等待执行时间。如果队列前面已经加入其他任务,那动画代码就要等前面的任务完成后再执行。
总结
复杂的动画是通过一个个简单的动画组合实现的。基于兼容性问题,通常在项目中,一般在
桌面端浏览器推荐使用javascript直接实现动画或SVG方式;移动端可以考虑使用CSS3 transition、CSS3 animation、Canvas或requestAnimationFrame方式**。