缓动动画添加回调函数

回调函数原理:

函数可以作为一个参数。将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数,这个过程就叫做回调。

回调函数写的位置:

定时器结束的位置。

效果:

代码:

 1 <script>
 2             function animate(obj, target, callback){
 3                 clearInterval(obj.timer);
 4                 obj.timer = setInterval(function(){
 5                     //计算步长值
 6                     //把步长值改成整数,不要出现小数问题
 7                     var step = (target - obj.offsetLeft) / 10;
 8                     step = step > 0 ? Math.ceil(step) : Math.floor(step);
 9                     if(obj.offsetLeft == target){
10                         // 停止动画本质上是停止定时器
11                         clearInterval(obj.timer);
12                         if(callback){
13                             //调用函数
14                             callback();
15                         }
16                     }
17                     obj.style.left = obj.offsetLeft + step + 'px';
18                 },10);
19             }
20             var div = document.querySelector('div');
21             var btn1 = document.querySelector('.btn1');
22             var btn2 = document.querySelector('.btn2');
23             //调用函数
24 
25             btn1.addEventListener('click', function(){
26                 animate(div, 500);
27             });
28             btn2.addEventListener('click', function(){
29                 animate(div, 800, function(){
30                     div.style.backgroundColor = 'pink';
31                 });
32             });
33         </script>

 

posted on 2020-06-11 10:44  SailorM  阅读(320)  评论(0编辑  收藏  举报