拿走直接用,兼容IE8及以下
getStyle请参考之前文章
function move(obj,target,speed,attr,callback) {
clearInterval(obj.timer)
//判断speed正负
//0-800移动 speed为正
// 800-0 speed为负]
//当前位置
var current = parseInt(getStyle(obj, attr));
if (current > target){
speed = -speed;
}
obj.timer = setInterval(function () {
// 获取left
var oldValue = parseInt(getStyle(obj, attr));
var newValue = oldValue + speed;
// 判断newValue和target
if ( (speed <0 && newValue < target ) || ( speed > 0 && newValue > target )){
newValue = target;
}
obj.style[attr] = newValue + "px";
if (newValue == target){
clearInterval(obj.timer);
//动画执行完毕调用回调函数
callback && callback();
}
},30);
};
function getStyle(obj, name) {
if (window.getComputedStyle){
return getComputedStyle(obj, null)[name];
}else {
return obj.currentStyle[name];
}
}