隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的網(wǎng)站選擇采用響應(yīng)式設(shè)計(jì),甚至專門(mén)制作了移動(dòng)端網(wǎng)站。因此,對(duì)于開(kāi)發(fā)移動(dòng)端網(wǎng)站的人來(lái)說(shuō),CSS3動(dòng)畫(huà)越來(lái)越常見(jiàn)。但是,使用CSS3動(dòng)畫(huà)時(shí),你可能會(huì)遇到一個(gè)問(wèn)題,那就是移動(dòng)端CSS3動(dòng)畫(huà)閃屏的問(wèn)題。
CSS3動(dòng)畫(huà)是由瀏覽器執(zhí)行的,當(dāng)瀏覽器完成動(dòng)畫(huà)的準(zhǔn)備后,會(huì)根據(jù)CSS3動(dòng)畫(huà)的節(jié)奏來(lái)更新屏幕。但是,移動(dòng)端對(duì)于性能要求比較高,有些設(shè)備不能及時(shí)更新屏幕,所以可能出現(xiàn)CSS3動(dòng)畫(huà)閃屏的問(wèn)題。
那么,我們?cè)撊绾谓鉀Q移動(dòng)端CSS3動(dòng)畫(huà)閃屏的問(wèn)題呢?其實(shí),有以下幾種解決方法:
//以下代碼為一個(gè)解決移動(dòng)端CSS3動(dòng)畫(huà)閃屏的樣例 //該示例通過(guò)添加webkit-backface-visibility: hidden;樣式來(lái)解決閃屏問(wèn)題 @keyframes fadeIn { 0% { opacity: 0; -webkit-transform: translateY(-100px); transform: translateY(-100px); } 100% { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); } } .fadeIn { animation-name: fadeIn; -webkit-animation-name: fadeIn; animation-duration: 1s; -webkit-animation-duration: 1s; animation-timing-function: ease-in-out; -webkit-animation-timing-function: ease-in-out; visibility: visible !important; } .fadeIn { -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); }
通過(guò)添加webkit-backface-visibility: hidden;樣式來(lái)解決閃屏問(wèn)題。這個(gè)樣式可以讓瀏覽器不顯示未渲染的元素背面,同時(shí)可以讓瀏覽器更好地優(yōu)化渲染,減少資源消耗。
另外,為元素設(shè)置visilibility:hidden樣式,再設(shè)置visibility:visible樣式,可以在元素開(kāi)始動(dòng)畫(huà)之前,將元素隱藏,防止出現(xiàn)即將動(dòng)畫(huà)開(kāi)始時(shí)的閃爍效果。
總之,解決移動(dòng)端CSS3動(dòng)畫(huà)閃屏的問(wèn)題,需要我們不斷地研究?jī)?yōu)化,才能獲得更好的用戶體驗(yàn)。