多物体运动JavaScript函数封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多物体运动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 及标准浏览器
  }
}





































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

JS运动缓冲的封装函数

封装一个运动函数

js动画学习

JS函数封装

Javascript动画效果

JS动画之速度动画和透明度变化