weixin_慕斯卡6145207
2019-01-21 10:07
//startMove(obj,{attr1:target1,attr2:target2},fn); function startMove(obj, json, fn) { var flag = true; clearInterval(obj.timer); obj.timer = setInterval(function () { for (var attr in json) { //取当前的值 var icur = 0; if (attr == 'opacity') { icur = parseFloat(getStyle(obj, attr)) * 100; } else { icur = parseInt(getStyle(obj, attr)); } //计算速度 var speed = (json[attr] - icur) / 8; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); //停止检测 if (icur !== json[attr]) { flag = false; } if (attr == 'opacity') { obj.style.opacity = (icur + speed) / 100; } else { obj.style[attr] = icur + speed + 'px'; } } if (flag) { clearInterval(obj.timer); if (fn) { fn(); } } }, 30); } function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr] } else { return getComputedStyle(obj, false)[attr]; } }
//停止检测
if
(icur != json[attr]) {
//这个位置判断不是“!==”而是“!=”
flag =
false
;
}
if (attr == 'opacity') { obj.style.filter = 'alpha(opacity:' + (iCur + speed) + ')';//此处透明度要兼容ie obj.style.opacity = (iCur + speed) / 100; }
JS动画效果
113924 学习 · 1443 问题
相似问题