亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

「譯」高效的 “box-shadow” 動畫

pkwenda / 2414人閱讀

摘要:給變化的制作動畫會大大縮減頁面渲染的性能。盡量的減少重繪的次數(shù),可以保證你的動畫能夠保證在左右通過改變子元素的透明度。為什么會有這樣的結(jié)果只有很少的屬性才能避免在動畫的過程不斷的重繪,像和。

原文地址:http://tobiasahlin.com/blog/how-to-animate-box-shadow/

如何才能防止在給 box-shadow 制作動畫過渡時導(dǎo)致的每一幀都要進(jìn)行的重繪(re-paint),從而提高頁面的性能?
答案就是:不可能。給變化的 box-shadow 制作動畫會大大縮減頁面渲染的性能。

但是,這里依然有類似的方法實現(xiàn)相同的效果。盡量的減少重繪的次數(shù),可以保證你的動畫能夠保證在 60 FPS 左右:通過改變子元素的 opacity 透明度。

Demo

查看這個Demo,比較一下兩種實現(xiàn)方式的不同。左邊的動畫是在 box-shadow:hover 狀態(tài)時執(zhí)行 box-shadow 動畫, 而右邊的實現(xiàn)方式中,我們通過 :after 添加了一個偽元素,并給它添加了 box-shadow, 然后通過執(zhí)行 opacity 動畫來是實現(xiàn)相同的效果。

如果你打開你的調(diào)試工具,可以看到下面類似的結(jié)果(綠色部分表示繪制;越少越好):

很明顯如果我們直接執(zhí)行 box-shadow 的動畫會導(dǎo)致更多的重繪。

為什么會有這樣的結(jié)果? 只有很少的屬性 才能避免在動畫的過程不斷的重繪,像 opacitytransform。
這就是兩種方式的不同之處,下面是核心代碼:

/* The slow way */
.make-it-slow {
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
  transition: box-shadow 0.3s ease-in-out:
}

/* Transition to a bigger shadow on hover */
.make-it-slow:hover {
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}

/* The fast way */
.make-it-fast {
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

/* Pre-render the bigger shadow, but hide it */
.make-it-fast:after {
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
  opacity: 0;
  transition: opacity 0.3s ease-in-out:
}

/* Transition to showing the bigger shadow on hover */
.make-it-fast:hover:after {
  opacity: 1;
}

在上面的例子中,高效的實現(xiàn)方式有兩層:一層負(fù)責(zé)呈現(xiàn)盒子,一層負(fù)責(zé)盒子陰影的過度動畫,只對陰影的 opcity 執(zhí)行動畫。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/111230.html

相關(guān)文章

  • []深入了解CSS Box Shadow

    摘要:水平偏移水平偏移控制了盒子陰影在軸的偏移。同時,因為是負(fù)值,所以向上移動。如果是負(fù)值,則會在各個方向上收縮。值得注意的是,因為它的擴(kuò)展距離是正,所以會在各個方向上增加因為沒有水平和垂直偏移。它可以通過任何可以表示顏色的方式來表示顏色。 原文:A Close Look at CSS Box Shadow CSS的box-shadow可以被用來給塊級元素一個外陰影或者是內(nèi)陰影。接下來讓我們...

    騫諱護(hù) 評論0 收藏0
  • []深入了解CSS Box Shadow

    摘要:水平偏移水平偏移控制了盒子陰影在軸的偏移。同時,因為是負(fù)值,所以向上移動。如果是負(fù)值,則會在各個方向上收縮。值得注意的是,因為它的擴(kuò)展距離是正,所以會在各個方向上增加因為沒有水平和垂直偏移。它可以通過任何可以表示顏色的方式來表示顏色。 原文:A Close Look at CSS Box Shadow CSS的box-shadow可以被用來給塊級元素一個外陰影或者是內(nèi)陰影。接下來讓我們...

    SQC 評論0 收藏0
  • 完整學(xué)習(xí)和使用CSS動畫

    摘要:然而通過自定義貝塞爾曲線的值,可以滿足你具體的動畫時間需求。關(guān)于如何使用貝塞爾曲線的方法我們可以通過查看的開發(fā)者網(wǎng)站動畫延時動畫延時常常應(yīng)用于當(dāng)我們需要對動畫進(jìn)行的延時操作的時候。從而減少大部分動畫執(zhí)行期間潛在的性能損耗問題。 注:原文有較大改動 使用 keyframes, animation屬性,例如timing, delay, play state, animation-coun...

    fjcgreat 評論0 收藏0
  • 完整學(xué)習(xí)和使用CSS動畫

    摘要:然而通過自定義貝塞爾曲線的值,可以滿足你具體的動畫時間需求。關(guān)于如何使用貝塞爾曲線的方法我們可以通過查看的開發(fā)者網(wǎng)站動畫延時動畫延時常常應(yīng)用于當(dāng)我們需要對動畫進(jìn)行的延時操作的時候。從而減少大部分動畫執(zhí)行期間潛在的性能損耗問題。 注:原文有較大改動 使用 keyframes, animation屬性,例如timing, delay, play state, animation-coun...

    sean 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<