您好,登錄后才能下訂單哦!
使用CSS3中Animations實現(xiàn)平滑頁面加載的方法?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
我對Apple.com產(chǎn)品頁面上看到的一些微妙動畫印象深刻。它通常以在頁面加載時播放的動畫開始,其中通過滑動/淡入在頁面上引入元素。它是如此微妙,但對用戶來說是如此令人滿意。
最近,我發(fā)現(xiàn)了一些問題,即添加簡單的動畫效果而不會出現(xiàn)波動,從而破壞了體驗。
在頁面加載時播放動畫的問題在于許多資源(包括操縱DOM的圖像和腳本)導(dǎo)致瀏覽器重新繪制/重新布局。這在嘗試播放動畫時與瀏覽器資源競爭,導(dǎo)致丟幀。
一種解決方法是延遲動畫的開始以允許在播放動畫之前繪制頁面。
通常在頁面上引入/顯示元素時,元素將被隱藏(不透明度:0),并且隨著時間的推移會獲得完全不透明度。
雖然動畫屬性有'delay'參數(shù),但為此參數(shù)指定時間將在其最終幀中顯示指定延遲長度的元素。然后它將隱藏元素,并將動畫設(shè)置為完全不透明度。這是一種不希望的效果。我們不希望在延遲期間看到最后一個關(guān)鍵幀。
要避免在延遲期間看到該元素,請按照下列步驟操作:
1)在我們想要動畫的html中創(chuàng)建一個div
2)在我們的css文件中創(chuàng)建關(guān)鍵幀(這些基本上將定義事物的變化,在這種情況下從不透明度0到不透明度100)
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
3)在我們的css中創(chuàng)建div標(biāo)簽,定義我們的動畫(持續(xù)時間,開始延遲等)并將其鏈接到我們的關(guān)鍵幀
.fade-in { opacity:0; /* make things invisible upon start */ animation:fadeIn ease-in 1; /* call our keyframe named fadeIn, use animattion ease-in and repeat it only 1 time */ animation-fill-mode:forwards; /* this makes sure that after animation is done we remain at the last keyframe value (opacity: 1)*/ animation-duration:1s; animation-delay: 1.5s}
關(guān)鍵是使用:
animation-fill-mode:forwards
和
opacity: 0
結(jié)合,這會隱藏我們想要為指定延遲設(shè)置動畫的元素(不透明度:0),并強(qiáng)制動畫在最后一個關(guān)鍵幀上停止(不透明度:1)。
感謝各位的閱讀!看完上述內(nèi)容,你們對使用CSS3中Animations實現(xiàn)平滑頁面加載的方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。