溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用CSS3的Animations實現(xiàn)平滑的頁面加載

發(fā)布時間:2022-02-24 15:15:15 來源:億速云 閱讀:160 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細講解有關(guān)怎么用CSS3的Animations實現(xiàn)平滑的頁面加載,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

  我對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)

  @keyframesfadeIn{from{opacity:0;}to{opacity:1;}}

  3)在我們的css中創(chuàng)建div標(biāo)簽,定義我們的動畫(持續(xù)時間,開始延遲等)并將其鏈接到我們的關(guān)鍵幀

  .fade-in{

  opacity:0;/*makethingsinvisibleuponstart*/

  animation:fadeInease-in1;/*callourkeyframenamedfadeIn,useanimattionease-inandrepeatitonly1time*/

  animation-fill-mode:forwards;/*thismakessurethatafteranimationisdoneweremainatthelastkeyframevalue(opacity:1)*/

  animation-duration:1s;

  animation-delay:1.5s}

  關(guān)鍵是使用:

  animation-fill-mode:forwards

  和

  opacity:0

  結(jié)合,這會隱藏我們想要為指定延遲設(shè)置動畫的元素(不透明度:0),并強制動畫在最后一個關(guān)鍵幀上停止(不透明度:1)。


怎么用CSS3的Animations實現(xiàn)平滑的頁面加載

關(guān)于“怎么用CSS3的Animations實現(xiàn)平滑的頁面加載”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI