多物体运动JavaScript函数封装

function startMove(obj, json, func){
  clearInterval(obj.timer);
  obj.timer = setInterval(function(){

    var bStop = true;

    //取出该属性的初值
    for(var attr in json){
      var iCur = 0;
      if(attr == "opacity"){
        iCur = parseFloat(getStyle(obj, attr)) * 100;
      }else{
        iCur = parseInt(getStyle(obj, attr))
      }
      var speed = (json[attr] - iCur) / 8;  //8 缩放系数,缓冲运动效果最好的缩放系数
      speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);

      //只要有一个值未达到指定值程序就不能继续执行
      if(iCur != json[attr]){
        bStop = false;
      }
      if(attr == "opacity"){
        obj.style.filter = "alpha(opacity: " + (iCur + speed) + ")";
        obj.style.opacity = (iCur + speed) / 100;
      }else{
        obj.style[attr] = iCur + speed + "px";
      }
    }
    if(bStop){
      clearInterval(obj.timer);
      if(func){
        func();
      }
    }
  }, 30);
}

//获取非行间样式
function getStyle(obj, attr){
  if(obj.currentStyle){
    return obj.currentStyle[attr];  //IE9 以下
  }else{
    return getComputedStyle(obj)[attr];  //IE9 及标准浏览器
  }
}

转载于:https://www.cnblogs.com/paul0705/p/7748542.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值