function getStyle(obj, attr) {
if (typeof getComputedStyle === ‘function’) {
return getComputedStyle(obj)[attr];
} else {
return obj.currentStyle[attr];
}
}
// 参数:元素,目标,属性,回调
function move(obj, target, attr, callback) {
clearInterval(obj.timer); // 定时器作为盒子的自定义属性
var dir = parseInt(getStyle(obj, attr)) > target ? -10 : 10; // 方向
obj.timer = setInterval(function() {
var speed = parseInt(getStyle(obj, attr)) + dir; // 获取当前的位置,加一个值,返回下次应该运动到的位置
if ((speed >= target && dir > 0) || (speed <= target && dir < 0)) {
clearInterval(obj.timer);
speed = target;
}
obj.style[attr] = speed + 'px';
if (speed === target) {
callback && callback();
}
}, 25);
}