CSS Sprites在國內(nèi)很多人叫CSS精靈,其實這個技術(shù)不新鮮,原理就是:靠不斷的切換圖片讓人感覺視覺上不斷在變化,例如gif動畫之類的效果
那么前端如何實現(xiàn)精靈效果?
傳統(tǒng)的就是靠定時器不斷去改變一個元素的background-image屬性了,簡單的來說就是靠不斷的替換圖片,但是值得注意的問題就是圖片如果很多,加載會比較慢,會占用大量網(wǎng)絡(luò)資源
大多數(shù)的做法就是把圖片都合成一張大圖再利用CSS的以下屬性
background-image background-repeat background-position
組合進行背景定位,background-position可以用數(shù)字精確的定位出背景圖片的位置
這里我將采用最新的CSS3的動畫實現(xiàn)。通過 CSS3我們能夠創(chuàng)建動畫,這可以在許多網(wǎng)頁中取代動畫圖片、Flash 動畫以及 JavaScript。
新增一個class類slowWalk,在這個類中定義一個animation,通過關(guān)鍵幀keyframes定義一些規(guī)則,就是如何取圖片坐標(biāo)
右邊代碼區(qū)域所示,為方便理解,解讀一下樣式的slowWalk類定義規(guī)則:
定義一個名為person-slow的@keyframes規(guī)則,@keyframes用百分比來規(guī)定變化發(fā)生的時間, 0% 是動畫的開始,100% 是動畫的完成,規(guī)則中有4個百分比值的變化,每個比值分別通過position獲取一張圖片,分別是0%,25%,50%,75%,100%。在950毫米內(nèi)從0%-100%發(fā)生4次變化,采用的算法是steps(1, start)一幀一幀的切換,通過設(shè)置infinite參數(shù)每950毫秒不斷循環(huán)
通過點擊開始動畫按鈕,我們可以看到最終效果,完全靠CSS實現(xiàn),非常nice!!!!
打開index.html文件,在代碼的23行填入相應(yīng)代碼,通過定義個CCS3的樣式規(guī)則,讓人物開始進行幀動畫切換
/*規(guī)定 @keyframes 動畫的名稱。*/ -webkit-animation-name: person-slow; /*規(guī)定動畫完成一個周期所花費的秒或毫秒。默認是 0*/ -webkit-animation-duration: 950ms; /*規(guī)定動畫被播放的次數(shù)。默認是 1。 infinite(循環(huán)播放)*/ -webkit-animation-iteration-count: infinite; /*動畫切換的方式是一幀一幀的改變*/ -webkit-animation-timing-function: steps(1, start); -moz-animation-name: person-slow; -moz-animation-duration: 950ms; -moz-animation-iteration-count: infinite; -moz-animation-timing-function: steps(1, start)
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報