缓动效果原理:缓动动画就是让元素运动速度有所变化,最常见的就是让速度慢慢停下来。
思路:1.每次让盒子移动的距离慢慢变小,盒子移动的速度就会慢下来。2.核心算法:(目标值-现在的位置)/10 作为每次移动的距离 步长。3.停止的条件是:让当前盒子位置等于目标位置就停止定时器。4.步长值取整
function animate(obj,target) {
clearInterval(obj.timer);
obj.timer = setInterval (function() {
var step=(target-obj.offsetLeft)/10;
step=step>0?Math.ceil(step):Math.floor(step);
if (obj.offsetLeft>=target){clearInterval(obj.timer);}
obj.style.left=obj.offsetLeft + step +'px';},30);}
//调用函数
animate(div,300);
匀速动画 :盒子当前的位置+固定值 ;缓动动画:盒子当前的位置+变化的值;