move.js

function getStyle(obj,name){
   if(obj.currentStyle){
      return obj.currentStyle[name];
   }else{
      return getComputedStyle(obj,false)[name];  
   }
}

function move(obj,json,options){
   options=options||{};
   options.duration=options.duration||700;
   options.easing=options.easing||'ease-in';
   
   var count=Math.floor(options.duration/30);
   
   var start={};
   var dis={};

   for(var name in json){
      //name  = 名称
      //json[name]= 值
      
      start[name]=parseFloat(getStyle(obj,name));
      
      dis[name]=json[name]-start[name];
      
   }
   var n=0;
   clearInterval(obj.timer);
   obj.timer=setInterval(function(){
      n++;
      //var cur=start+dis*n/count;
      
      for(var name in json){
         
         switch(options.easing){
            case 'linear':
               var cur=start[name]+dis[name]*n/count;
            break;
            case 'ease-in':
               var a=Math.pow(n/count,3);
               var cur=start[name]+dis[name]*a;
            break; 
            case 'ease-out':
               var a=Math.pow(1-n/count,3);
               var cur=start[name]+dis[name]*(1-a);
            break;
         }
         
         if(name=='opacity'){
            obj.style[name]=cur;
            obj.style.filter='alpha(opacity:'+(cur*100)+')';   
         }else{
            obj.style[name]=cur+'px';     
         }
            
      }
      
      if(n==count){
         clearInterval(obj.timer);
         
         options.complete&&options.complete();
      }
      
   },30);
}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值