色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

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

問題描述

1.使用animation-defer或者 setimeout 來延遲為什么會造成animation的卡頓,而不使用延遲是很流暢的,我移動的是一張800k的圖片,他的卡頓不是說一直會卡,比如說下面animation: moveup 0.9s ease-in-out forwards;的變?yōu)閍nimation: moveup 0.9s ease-in-out forwards 0.4s; 的時候,他會在大概0.5s的時候卡一下?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 添加類名來達到目的

3.在手機端測試會卡,電腦端沒問題,報錯信息沒有,就是不添加延遲的時候,動畫可以很流暢的進行,添加延遲的時候,就會根據(jù)添加延遲的時間,0.4s或者0.6s等,在不同的位置卡一下,這個在電腦上測試沒問題,但是在手機上測試就會卡,我的手機是安卓的。

4、在電腦上搜過各種答案進行優(yōu)化/a/11...,本來使用left,后來改了學會了使用transform

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

問題解答

回答1:

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

當然,還有另一個極端的例子:就是transform,transition,animation混用...兩個動畫切換的時候,需要切換預載入的動畫過程,也會發(fā)生以上情況;

抱歉,話多了;PS:chrome和FF,IE10已經(jīng)支持w3c標準寫法了;

.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%); }}

標簽: JavaScript
主站蜘蛛池模板: 国产成人精品午夜在线播放 | 福利视频黄 | 美国一级毛片片aa成人 | 成人怡红院视频在线观看 | 午夜性色福利视频在线视频 | 国产精品亚洲玖玖玖在线靠爱 | 91在线成人 | 最新亚洲人成网站在线影院 | 午夜伊人网 | aaa级大片| 中文字幕有码在线播放 | 亚洲国产综合人成综合网站00 | 99精彩免费观看 | 国产精选经典三级小泽玛利亚 | 久久久一区二区三区不卡 | 毛片网站观看 | 欧美日韩精品在线视频 | 国产高清美女一级a毛片久久w | 性欧美精品 | 免费观看欧美一区二区三区 | 国产成人免费福利网站 | 亚洲人成综合在线播放 | 日韩中文字幕免费在线观看 | 99精品国产高清一区二区三区香蕉 | 久久99国产精品一区二区 | 久久久久久久久免费视频 | 亚洲精品国产福利一区二区三区 | 在线一区二区三区 | 99精品视频免费观看 | 欧美高清视频在线 | 日韩专区亚洲精品欧美专区 | 国产日韩久久久久69影院 | 免费一级毛片在线播放放视频 | 亚洲在线免费视频 | 国产精品正在播放 | 97婷婷狠狠成人免费视频 | 亚洲国产高清一区二区三区 | 国产一区二区亚洲精品天堂 | 91久久| 久久免费精品视频在线观看 | 一区二区三区免费在线视频 |