动画函数封装

Posted 她还会来吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动画函数封装相关的知识,希望对你有一定的参考价值。

函数封装

话不多说,直接上代码

function animate(obj,target,callback){
    //对于存在按钮点击后,开启器定时器的情况下, 当我们不断的点击按钮,元素的速度就会越来越快,因为开启了太多的定时器
    // 解决方案:当我们开启下一个定时器的时候,清除上一个定时器
    clearInterval(obj.timer);
    // 给不同元素设置不同定时器,提高运行效率
    obj.timer = setInterval(function(){
      // 计算步长:(目标值-现在的位置)/10 作为每次移动的距离 
        var step = (target-obj.offsetLeft)/10;
        step = step > 0 ? Math.ceil(step):Math.floor(step);
          if(obj.offsetLeft==target)
          {    //停止动画,本质是停止定时器
              clearInterval(obj.timer);
            //   if(callback)
            //   {
            //       callback();
            //   }
            callback&&callback();

          }
          else{
              obj.style.left = obj.offsetLeft + step + 'px';
          }
    },15);
}

注意:使用该函数时,给元素一定要加定位,不然不会产生想要的效果

以上是关于动画函数封装的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript——WEBAPIS_深入动画函数的封装,常见网页特效

VSCode自定义代码片段7——CSS动画

VSCode自定义代码片段7——CSS动画

常用Javascript代码片段集锦

使用嵌套片段和动画对象

封装动画的函数