叶丹青
2018-08-30 15:47
function animate(obj, json) {
clearInterval(obj.timer); //清理一下定时器在创建定时器
obj.timer = setInterval(function () {
//先假设 这一次执行完 所有的属性都到达目标了
var flag = true;
for (var k in json) {
var leader = parseInt(getStyle(obj, k)) || 0;
var target = json[k];
var step = (target - leader) / 10;
step = step > 0 ? Math.ceil(step) : Math.floor(step);
leader = leader + step;
obj.style[k] = leader + "px";
//if (leader === target) {
// clearInterval(obj.timer);
//}
console.log("代码还在运行");
if (leader != target) {
flag = false;//告诉标记 当前这个属性还没到达
}
}
//如果此时仍然为true 就说明真的都到达了
if (flag) {
clearInterval(obj.timer);
}
}, 15);
}
//全部属性都到达目标值才能清空
function getStyle(obj, attr) { //获取CSS外部样式 attr=值
if (window.getComputedStyle) {
return window.getComputedStyle(obj, null)[attr]; //火狐谷歌上兼容
} else {
return obj.currentStyle[attr]; //IE上兼容
}
}
哪一句?还是说是这一整段?
JS动画效果
113925 学习 · 1443 问题
相似问题