jquery191源碼分析系列(十五)動(dòng)畫(huà)處理之緩動(dòng)動(dòng)畫(huà)核心tween_jquery

jquery191源碼分析系列(十五)動(dòng)畫(huà)處理之緩動(dòng)動(dòng)畫(huà)核心tween_jquery

ID:30769135

大小:117.26 KB

頁(yè)數(shù):8頁(yè)

時(shí)間:2019-01-03

jquery191源碼分析系列(十五)動(dòng)畫(huà)處理之緩動(dòng)動(dòng)畫(huà)核心tween_jquery_第1頁(yè)
jquery191源碼分析系列(十五)動(dòng)畫(huà)處理之緩動(dòng)動(dòng)畫(huà)核心tween_jquery_第2頁(yè)
jquery191源碼分析系列(十五)動(dòng)畫(huà)處理之緩動(dòng)動(dòng)畫(huà)核心tween_jquery_第3頁(yè)
jquery191源碼分析系列(十五)動(dòng)畫(huà)處理之緩動(dòng)動(dòng)畫(huà)核心tween_jquery_第4頁(yè)
jquery191源碼分析系列(十五)動(dòng)畫(huà)處理之緩動(dòng)動(dòng)畫(huà)核心tween_jquery_第5頁(yè)
資源描述:

《jquery191源碼分析系列(十五)動(dòng)畫(huà)處理之緩動(dòng)動(dòng)畫(huà)核心tween_jquery》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、jQuery1.9.1源碼分析系列(十五)動(dòng)ffll處理之緩動(dòng)動(dòng)畫(huà)核心Tween在jQuery內(nèi)部函數(shù)Animation中調(diào)用到了createTweens()來(lái)創(chuàng)建緩動(dòng)動(dòng)畫(huà)組,創(chuàng)建完成后的結(jié)果為:▼tweens:Array[4]▼0:Tween?initeasing:"swing"?elem:div#myDivend:200now:0▼options:Object?complete:function(){duration:400old:falsequeue:"fx"?specialEasing:Obje

2、ct?_proto_:Tween▼1:Tween.initeasing:11swing"?elem:div#myDivend:200now:0unit:Mpxfi?options:ObjectmarninKighV?_proto_:Tween▼2:Tween.initeasing:r,sw?elem:div#myDivend:200now:0Aoptions:Ob址ctCprop:f,marginBottomunit:"px"?_proto_:Tween▼3:Tween?initeasing:11swi

3、ng"?elem:div#myDivend:200now:0?options:ObjectZprop:^ma廠ginLeft11start:0"unit:Mpxfi?_proto_:Tween1^nai"h?A.可以看到上面的緩動(dòng)動(dòng)畫(huà)組有四個(gè)原子動(dòng)畫(huà)組成。每一個(gè)原子動(dòng)畫(huà)的信息都包含在里面了。仔細(xì)查看createTweens函數(shù),實(shí)際上就是遍丿力調(diào)用了tweeners[〃*"]的數(shù)組中的函數(shù)(實(shí)際上就只有一個(gè)元素)。functioncreateTweens(animation,props){jQuery.

4、each(props,function(prop,value){varcollection=(tweeners[prop]

5、[]).concat(tweeners[〃*〃]),index二0,length=collection,length;for(;index

6、〃][0]函數(shù),主要代碼如下function(prop,value){varend,unit,〃根據(jù)css特征值獲取緩動(dòng)動(dòng)畫(huà)結(jié)構(gòu)tween=this.createTween(prop,value),parts二rfxnum.exec(value),target二tween,cur(),start二+target

7、

8、0,scale=1,maxiterations=20;if(parts){end=+parts⑵;unit二parts[3]

9、

10、(jQuery.cssNumbc譏prop]?:〃px〃);〃非

11、像素單位的屬性if(unit!=="px"&&start){//從一個(gè)非零起點(diǎn)開(kāi)始迭代,〃對(duì)于當(dāng)前屬性,如果它使用相同的單位這一過(guò)程將是微不足道//后備為end,或一個(gè)簡(jiǎn)單的常量start=jQuery.css(tween,elem,prop,true)

12、

13、end

14、

15、1;do{〃如果前一次迭代為零,加倍,直到我們得到*東西*〃使用字符串倍壇因子,所以我們不會(huì)偶然看到scale不改變scale二scale

16、

17、〃?5";//調(diào)整和運(yùn)行start=start/scale;jQuery.style(tween,

18、elem,prop,start+unit);//更新scale,默認(rèn)0或NaN從tween,cur()獲取//跳出循環(huán),如果scale不變或完成時(shí),或者我們已經(jīng)覺(jué)得已經(jīng)足夠了}while(scale!二二(scale二tween,cur()/target)&&scale!==1&&--maxiterations);}tween,unit二unit;tween,start=start;〃如果提供了+二/-二記號(hào),表示我們止在做一個(gè)相對(duì)的動(dòng)畫(huà)tween.end=parts[l]?start+(parts[l

19、]+1)*end:end;}returntween;}]};可以看岀除了hide/show兩種動(dòng)畫(huà)外的其他動(dòng)畫(huà)都經(jīng)過(guò)tweeners[〃*"][0]這個(gè)函數(shù)封裝了動(dòng)畫(huà)組。其中有兒個(gè)關(guān)鍵的數(shù)組start/end/unito特別是對(duì)非像素單位的動(dòng)畫(huà)start值獲取費(fèi)了一番功夫。還有一個(gè)比較關(guān)鍵的地方是都用了this.createTween獲取單個(gè)css特征的基礎(chǔ)的動(dòng)畫(huà)特征。而animation.createTween中直接調(diào)用jQuery.Tw

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。