//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)?{
????????????//取當(dāng)前的值
????????????var?icur?=?0;
????????????if?(attr?==?'opacity')?{
????????????????icur?=?parseFloat(getStyle(obj,?attr))?*?100;
????????????}?else?{
????????????????icur?=?parseInt(getStyle(obj,?attr));
????????????}
????????????//計(jì)算速度
????????????var?speed?=?(json[attr]?-?icur)?/?8;
????????????speed?=?speed?>?0???Math.ceil(speed)?:?Math.floor(speed);
????????????//停止檢測(cè)
????????????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];
????}
}
2019-02-24
??
//停止檢測(cè)
? ? ? ?
? ?
if
?(icur?!=?json[attr])?{
? ? //這個(gè)位置判斷不是“!==”而是“!=”
? ? ? ? ? ?
flag?=?
false
;
? ? ??
? ? ?
}