DOM高級操作——多屬性運動完美封裝

```javascript

//多屬性同時運動封裝(callback用于鏈式運動)

function animate(obj,param,callback,speedTime = 20){

//callback是接收了一個回調(diào)函數(shù)载庭。這個回調(diào)函數(shù)需要在屬性到達目標值時執(zhí)行

if(!!callback && !(callback instanceof Function)){//callback有值,并且又不是函數(shù)

//將時間賦值給speedTime

speedTime = callback;

//將callback置為undefined

callback = undefined;

}

clearInterval(obj.timer);

obj.timer = setInterval(function(){

var flag = true;

for(var attr in param){

//zIndex屬性不需要動畫,直接賦值就可以了

if(attr === "zIndex" || attr === "display"){

obj.style[attr] = param[attr];

}else{

var current = 0;

if(attr === "opacity"){

current = getStyle(obj,attr) * 100;

}else{

current = parseInt(getStyle(obj,attr));

}

var speed = (param[attr] - current)/10;

speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);

//判斷是否所有的屬性都到達了目標 值

if(param[attr] != current){//最少有一個沒有到達目標值

flag = false;//flag為false表示最少有一個沒有到達目標值

//沒有到達目標值繼續(xù)賦值

if(attr == "opacity"){

obj.style[attr] = (current + speed)/100;

}else{

obj.style[attr] = current + speed + "px";

}

}

}

}

//上面的for in循環(huán)沒有去執(zhí)行澜公,flag保持為true時维咸,說明這一次的運動過程所有的屬性都到達了目標值

if(flag){//

clearInterval(obj.timer);

//到達目標值回懦,開啟鏈式

if(!!callback){

callback();

}

}

},speedTime);

}

//兼容ie8實現(xiàn)獲取瀏覽器渲染的一元素樣式值闽撤。

function getStyle(obj,attr){

if(!!window.getComputedStyle){//現(xiàn)代瀏覽器

return window.getComputedStyle(obj)[attr];

}

//ie8

return obj.currentStyle[attr];

}

```

多屬性同時運動封裝(callback用于鏈式運動)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末端辱,一起剝皮案震驚了整個濱河市梁剔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舞蔽,老刑警劉巖荣病,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異渗柿,居然都是意外死亡个盆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門朵栖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颊亮,“玉大人,你說我怎么就攤上這事陨溅≈栈螅” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵门扇,是天一觀的道長雹有。 經(jīng)常有香客問我,道長臼寄,這世上最難降的妖魔是什么霸奕? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮吉拳,結(jié)果婚禮上铅祸,老公的妹妹穿的比我還像新娘。我一直安慰自己合武,他們只是感情好临梗,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稼跳,像睡著了一般盟庞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汤善,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天什猖,我揣著相機與錄音票彪,去河邊找鬼。 笑死不狮,一個胖子當著我的面吹牛降铸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播摇零,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼推掸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驻仅?” 一聲冷哼從身側(cè)響起谅畅,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎噪服,沒想到半個月后毡泻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡粘优,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年仇味,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雹顺。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡邪铲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出无拗,到底是詐尸還是另有隱情,我是刑警寧澤昧碉,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布英染,位于F島的核電站,受9級特大地震影響被饿,放射性物質(zhì)發(fā)生泄漏四康。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一狭握、第九天 我趴在偏房一處隱蔽的房頂上張望闪金。 院中可真熱鬧,春花似錦论颅、人聲如沸哎垦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漏设。三九已至,卻和暖如春今妄,著一層夾襖步出監(jiān)牢的瞬間郑口,已是汗流浹背鸳碧。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留犬性,地道東北人瞻离。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像乒裆,于是被迫代替她去往敵國和親套利。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容