动画函数封装

动画函数封装

1. 动画实现原理

核心原理:通过定时器 setInterval() 不断移动盒子位置。

实现步骤:

  1. 获得盒子当前位置

  2. 让盒子在当前位置加上1个移动距离

  3. 利用定时器不断重复这个操作

  4. 加一个结束定时器的条件

  5. 注意此元素需要添加定位,才能使用element.style.left

2. 动画函数给不同元素记录不同定时器

如果多个元素都使用这个动画函数,每次都要var 声明定时器。我们可以给不同的元素使用不同的定时器(自己专门用自己的定时器)。f

核心原理:利用 JS 是一门动态语言,可以很方便的给当前对象添加属性。

 function animate(obj, target) {
           // 当我们不断的点击按钮,这个元素的速度会越来越快,因为开启了太多的定时器
           // 解决方案就是 让我们元素只有一个定时器执行
           // 先清除以前的定时器,只保留当前的一个定时器执行
           clearInterval(obj.timer);
           obj.timer = setInterval(function() {
               if (obj.offsetLeft >= target) {
                   // 停止动画 本质是停止定时器
                   clearInterval(obj.timer);
              }
               obj.style.left = obj.offsetLeft + 1 + 'px';

          }, 30);
      }

f

原文地址:https://www.cnblogs.com/llanq123/p/13807566.html