//定义获取任意属性值的方法
function getStyle(ele, attr) {
return window.getComputedStyle ? window.getComputedStyle(ele)[attr] : window.currentStyle(ele)[attr]
}
function animate(ele, obj, callback) {
clearInterval(ele.timer);
var path ,flag,current,tar;
ele.timer = setInterval(function () {
flag = true;
for (var attr in obj) {
if (obj.hasOwnProperty(attr)) {
switch (attr) {
case 'zIndex':
ele.style.zIndex = obj[attr];
console.log('我计算了');
delete obj[attr];
break;
case 'opacity':
current = getStyle(ele, attr) * 100;
tar = obj[attr] * 100;
path = current < tar ? Math.ceil((tar - current) / 10) : Math.floor((tar - current) / 10);
current += path;
ele.style[attr] = current / 100;
break;
default:
current = parseInt(getStyle(ele, attr));
tar = parseInt(obj[attr]);
path = current < tar ? Math.ceil((tar - current) / 10) : Math.floor((tar - current) / 10);
current += path;
ele.style[attr] = current + 'px';
}
if (tar !== current) {
flag = false;
}
}
}
if (flag) {
clearInterval(ele.timer);
callback && callback()
}
}, 20)
}
学而时习之,不亦说乎!古人诚不欺我 同样的代码每多敲一次就有不一样的收获,哈哈