完美运动框架

function getStyle(ele, attr) {
  if (ele.currentStyle) {
    return ele.currentStyle[attr];
  } else {
    return getComputedStyle(ele, false)[attr];
  }
}
function move(ele, obj, callback) {
  clearInterval(ele.timer);
  ele.timer = setInterval(function () {
    var a = true;
    for (var attr in obj) {
      if (attr == "opacity") {
        var start = getStyle(ele, attr) * 100;
      } else {
        var start = parseInt(getStyle(ele, attr));
      }
      var speed = (obj[attr] - start) / 8;
      speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
      if (obj[attr] != start) {
        a = false;
      }
      if (attr == "opacity") {
        ele.style.opacity = (start + speed) / 100;
        ele.style.filter = "alpha(opacity=" + (start + speed)+ ")";
      } else {
        ele.style[attr] = start + speed + "px";
      }
    }
    if (a) {
      clearInterval(ele.timer);
      callback && callback();
    }
  }, 30)
}
原文地址:https://www.cnblogs.com/asablog/p/10728170.html