jQuery 的動(dòng)畫為了穩(wěn)定與兼容的的選擇,所以即使在目前的 2.1.1 的版本中也是采用的幀動(dòng)畫而不是最新的 CSS3 動(dòng)畫,至于原因當(dāng)然有很多我們這里就只涉及框架的幀動(dòng)畫的處理,幀動(dòng)畫的實(shí)現(xiàn)動(dòng)畫的原理跟動(dòng)畫片的制作一樣。動(dòng)畫片是把一些差距不大的原畫以一定幀數(shù)播放, js 動(dòng)畫是靠連續(xù)改變?cè)氐哪硞€(gè) css 屬性值,比如 left, top 達(dá)到視覺(jué)的動(dòng)畫效果。
book.animate({ left: '+=50', }).animate({ left: '+=100', }).animate({ left: '-=50', });
這里是一組最簡(jiǎn)單的動(dòng)畫,但是在設(shè)計(jì)上會(huì)有一個(gè)最重要的問(wèn)題:
因?yàn)閯?dòng)畫是異步的,但是 animate 方法的鏈?zhǔn)酱a是同步的,所以這里要涉及一個(gè)最重要的問(wèn)題,動(dòng)畫隊(duì)列要如何有序的調(diào)用?
傳統(tǒng)的思路
jQuery 為動(dòng)畫量身定制了隊(duì)列機(jī)制,我們的思路可以是這樣
總結(jié)
兩方方法都是利用異步收集同步的代碼,區(qū)別就是一個(gè)是靠定時(shí)器,一個(gè)是靠動(dòng)畫自身,所以在精確度上來(lái)說(shuō)顯然是動(dòng)畫自身控制是最合理的。好比我們?nèi)ッ嬖嚕嬖嚬僦灰屆恳粋€(gè)面試完畢的人去通知后面的人繼續(xù)進(jìn)來(lái)面試一樣,如此反復(fù)
右邊代碼,請(qǐng)?jiān)谥С?webkit 的瀏覽器下面調(diào)試,谷歌、急速360。
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開(kāi)微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書(shū)簽
舉報(bào)