本文將為大家詳細(xì)介紹“css動(dòng)畫會(huì)被js阻塞嗎”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會(huì)更新不同的知識(shí)點(diǎn),希望這篇“css動(dòng)畫會(huì)被js阻塞嗎”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識(shí)吧。
創(chuàng)新互聯(lián)建站是一家專業(yè)提供普定企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為普定眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。css的動(dòng)畫部分是會(huì)被js阻塞的,不過transform的動(dòng)畫則不會(huì)受影響。
下面舉一個(gè)margin-left移動(dòng)的動(dòng)畫下,啟動(dòng)js阻塞動(dòng)畫的性能圖表
<style> .walkabout-old-school { animation: 3s slide-margin linear infinite; } @keyframes slide-margin { from {margin-left: 0;} 50% {margin-left: 100%;} to {margin-left: 0;} } </style> <script> function kill() { var start = +new Date; while (+new Date - start < 2000){} } </script>
上圖在運(yùn)行kill方法之后明顯可以看到動(dòng)畫停滯了2s后才繼續(xù)。
由上圖可以看到啟用js的2s內(nèi),渲染進(jìn)程會(huì)等到kill函數(shù)執(zhí)行完成后才執(zhí)行,再看下面這張圖,可以看出margin的變化會(huì)導(dǎo)致dom重新布局,而布局會(huì)等kill函數(shù)執(zhí)行完成后才開始。就會(huì)導(dǎo)致
然后再看看使用了transform作為動(dòng)畫的元素
.walkabout-new-school { animation: 3s slide-transform linear infinite; } @keyframes slide-transform { from {transform: translatex(0);} 50% {transform: translatex(300px);} to {transform: translatex(0);} }
下圖是運(yùn)行對(duì)比圖(藍(lán)色為margin,綠色為transform)
從上圖看出使用了transform的完全不受kill方法的影響,再來看下調(diào)試的圖表
這里可以看出margin會(huì)頻繁觸發(fā)頁面的重排,而transform是不會(huì)的,而js阻塞了頁面重排。所以margin的動(dòng)畫會(huì)卡住。
所以在平時(shí)使用動(dòng)畫時(shí),多用transform可以讓頁面性能和效果達(dá)到很好。
如果你能讀到這里,小編希望你對(duì)“css動(dòng)畫會(huì)被js阻塞嗎”這一關(guān)鍵問題有了從實(shí)踐層面最深刻的體會(huì),具體使用情況還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站欄目:css動(dòng)畫會(huì)被js阻塞嗎-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://www.rwnh.cn/article44/cceghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、域名注冊、標(biāo)簽優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、定制網(wǎng)站、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)