av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 使用animation-defer或者 setimeout 來(lái)延遲為什么會(huì)造成animation的卡頓,而不使用延遲是很流暢的?

瀏覽:98日期:2022-12-04 14:46:48

問(wèn)題描述

1.使用animation-defer或者 setimeout 來(lái)延遲為什么會(huì)造成animation的卡頓,而不使用延遲是很流暢的,我移動(dòng)的是一張800k的圖片,他的卡頓不是說(shuō)一直會(huì)卡,比如說(shuō)下面animation: moveup 0.9s ease-in-out forwards;的變?yōu)閍nimation: moveup 0.9s ease-in-out forwards 0.4s; 的時(shí)候,他會(huì)在大概0.5s的時(shí)候卡一下?2.

.content-up--img{ position: absolute; top: 0; left: 0; z-index: 15;}.content-up--img.J_trans{ -webkit-transform: translateX(100%) translateZ(0); transform: translateX(100%) translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-perspective: 1000; perspective: 1000;}.content-up--img.J_end{ -webkit-animation: moveup 0.9s ease-in-out forwards; animation: moveup 0.9s ease-in-out forwards;}@-webkit-keyframes moveup { 0%{ -webkit-transform: translateX(100%) translateZ(0); transform: translateX(100%) translateZ(0); } 60%{ -webkit-transform: translateX(-32px) translateZ(0); transform: translateX(-32px) translateZ(0); } 100%{ -webkit-transform: translateX(0) translateZ(0); transform: translateX(0) translateZ(0); }}@keyframes moveup { 0%{ -webkit-transform: translateX(100%) translateZ(0); transform: translateX(100%) translateZ(0); } 60%{ -webkit-transform: translateX(-32px) translateZ(0); transform: translateX(-32px) translateZ(0); } 100%{ -webkit-transform: translateX(0) translateZ(0); transform: translateX(0) translateZ(0); }}

主要的代碼是上面的css,后面使用js 添加類名來(lái)達(dá)到目的

3.在手機(jī)端測(cè)試會(huì)卡,電腦端沒(méi)問(wèn)題,報(bào)錯(cuò)信息沒(méi)有,就是不添加延遲的時(shí)候,動(dòng)畫(huà)可以很流暢的進(jìn)行,添加延遲的時(shí)候,就會(huì)根據(jù)添加延遲的時(shí)間,0.4s或者0.6s等,在不同的位置卡一下,這個(gè)在電腦上測(cè)試沒(méi)問(wèn)題,但是在手機(jī)上測(cè)試就會(huì)卡,我的手機(jī)是安卓的。

4、在電腦上搜過(guò)各種答案進(jìn)行優(yōu)化/a/11...,本來(lái)使用left,后來(lái)改了學(xué)會(huì)了使用transform

5.最后得到的結(jié)果是javascript - 使用animation-defer或者 setimeout 來(lái)延遲為什么會(huì)造成animation的卡頓,而不使用延遲是很流暢的?看起來(lái)沒(méi)什么問(wèn)題,沒(méi)有紅色,想知道有可能是什么原因呢

問(wèn)題解答

回答1:

CSS您添加了translateZ(0)開(kāi)啟了硬件加速,這塊其實(shí)也卡了,不過(guò)是在頁(yè)面加載CSS時(shí)候,所以播放的時(shí)候不會(huì)有感覺(jué)卡頓;您可以理解成,動(dòng)畫(huà)是有一個(gè)預(yù)載入過(guò)程的,發(fā)生在由瀏覽器呈現(xiàn)器交付給硬件計(jì)算后返回結(jié)果這個(gè)過(guò)程中(您可以由兩種不動(dòng)的動(dòng)畫(huà)方案,JS使用timeout與不使用Timeout,檢查內(nèi)存可見(jiàn);當(dāng)然,動(dòng)畫(huà)復(fù)雜\幅面特別大才會(huì)顯著的看出兩者的內(nèi)存差距),但是,您JS控制,就人為的延后了預(yù)載入的過(guò)程,把延遲的動(dòng)畫(huà)與當(dāng)前動(dòng)畫(huà)分離計(jì)算,一些跑計(jì)算量大的(陰影與透明)就會(huì)明顯的閃動(dòng),跳幀,甚至卡頓;

當(dāng)然,還有另一個(gè)極端的例子:就是transform,transition,animation混用...兩個(gè)動(dòng)畫(huà)切換的時(shí)候,需要切換預(yù)載入的動(dòng)畫(huà)過(guò)程,也會(huì)發(fā)生以上情況;

抱歉,話多了;PS:chrome和FF,IE10已經(jīng)支持w3c標(biāo)準(zhǔn)寫(xiě)法了;

.content-up--img{ position: absolute; top: 0; right:0; z-index: 15;}.content-up--img.J_trans{ transform: translateZ(0); backface-visibility: hidden; perspective: 1000;}.content-up--img.J_end{ animation: moveup 0.9s ease-in-out;}@keyframes moveup { 0%{ transform: translateX(0); } 60%{ transform: translateX(-32px); } 100%{ transform: translateX(-100%); }}

標(biāo)簽: JavaScript
主站蜘蛛池模板: 玖玖在线精品 | 欧美老少妇一级特黄一片 | 欧美4p| 久久精品亚洲国产奇米99 | 在线午夜| 亚洲三区在线观看 | 久久精品av| 精品免费国产一区二区三区四区介绍 | 伊人网一区 | 一区二区视频 | 欧美精品久久久久久久久老牛影院 | 美女黄18岁以下禁止观看 | 亚洲精品91 | 日韩一区二区在线视频 | 亚洲成年人免费网站 | 免费观看日韩精品 | av国产在线观看 | 国产一级免费视频 | 看羞羞视频免费 | 中文在线视频观看 | 美日韩精品 | 天天色综| 久久99精品久久久 | 久久在线 | 久免费视频 | 日韩在线观看一区 | 国产午夜精品一区二区三区四区 | 精产国产伦理一二三区 | 成人在线h | 久久综合一区 | 九色国产 | 国产在线一区二区三区 | 国产精品成人69xxx免费视频 | 精品一区二区在线视频 | 精品1区2区 | 国产亚洲精品综合一区 | 亚洲国产成人精品女人久久久 | 欧美日韩在线电影 | 欧美黄色片 | 人妖一区 | 污片在线免费观看 |