我是靠谱客的博主 靓丽流沙,最近开发中收集的这篇文章主要介绍动画animate的封装,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

function getStyle(Ele,attr){
 if(window.getComputedStyle){
   return window.getComputedStyle(Ele,attr);
 }
   return Ele.currentStyle[attr];
}

function animate(Ele,json,callback){
//清空定时器,保证一个dom对象,只有一个定时器
 clearInterval(Ele.timer);
 Ele.timer=setInterval(()=>{
    "use strict";
     let flag=true;
     let current=0;     
     let target=0;
     let step=0;      
     for(var attr in json){
        if(attr=="opacity"){
           current=getStyle(Ele,attr)*100;
           target=json[attr]*100;
       }else{
           current=parseInt(getStyle(Ele,attr));        
           target=json[attr]
       }

        step=(target-current)/10;
        step=step>0?Math.ceil(step):Math.floor(step);        
            
        if(attr=="opacity"){
             Ele.style[attr]=(current+step)/100;
             Ele.style.filter=`Alpha(Opacity=${current+step})`;   
         }else if(attr=="zIndex"){
             Ele.style[attr]=json[attr]  
         }else{
            Ele.style[attr]=current+step+'px';
         }
          if(current!=target){
                flag=false; 
           }
    }   
         if(flag){
             clearInterval(Ele.timer);
             if(typeof(callback)=="function"){
                   callback();  
            }
          }     
   
  },50)

}

 

转载于:https://www.cnblogs.com/xxcnhj/p/11028280.html

最后

以上就是靓丽流沙为你收集整理的动画animate的封装的全部内容,希望文章能够帮你解决动画animate的封装所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部