iOS中CSS的transition動(dòng)畫閃動(dòng)bug

場景:
1.在開發(fā)中使用瀏覽器打開有CSS transition動(dòng)畫的網(wǎng)頁栖疑,發(fā)現(xiàn)動(dòng)畫一開始是連貫的,到了后面動(dòng)畫還沒結(jié)束就突然閃到動(dòng)畫結(jié)束的位置。
2.瀏覽器組件是WKWebView。
3.重復(fù)打開瀏覽器丘损,情況會(huì)越來越嚴(yán)重,到最后動(dòng)畫沒了工扎,直接從動(dòng)畫開始位置變換到動(dòng)畫結(jié)束的位置。
4.系統(tǒng)越低級(jí)越嚴(yán)重衔蹲,到了iOS10閃動(dòng)情況減緩了不少肢娘。

下面是測試的html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Language" content="zh-cn"/>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    <meta name="viewport" content="width=640,target-densitydpi=device-dpi,user-scalable=no">  
</head>
<style>
    *{
        margin: 0;
    }
    #demo{
        width:200px;
        height: 200px;
        position: absolute;
        right: 0;
        background-color:green;
        -webkit-transition:all  1s;
        transition:all 1s;
        
    }
    #btn{
        font-size: 30px;
        color:#fff;
        width: 170px;
        height: 50px;
        line-height: 50px;
        border-radius: 12px;
        text-align: center;
        background-color:red;
        position: absolute;
        top: 250px;
        left: 250px;
    }
</style>
<body style="position: relative;">
    <div id="demo"></div>
    <div id="btn">我是按鈕</div>
</body>
<script type="text/javascript" src="http://s1.bdstatic.com/r/www/cache/static/jquery/jquery-1.10.2.min_f2fb5194.js"></script>
<script>
    var bol = true;
    $('#btn').click(function(){
        if (bol) {
            $('#demo').css('webkit-transform','translate(-400px)');
            $('#demo').css('transform','translate(-400px)');
            bol = false;
        }
        else{
            $('#demo').css('webkit-transform','translate(0px)');
            $('#demo').css('transform','translate(0px)');
            bol = true;
        }
        
    })
</script>
</html>

就是一個(gè)點(diǎn)擊按鈕就能左右移動(dòng)方塊的demo

Paste_Image.png

解決:
看了好久沒發(fā)現(xiàn)原因呈础,只能用二分法注釋代碼來找(囧)。
最后發(fā)現(xiàn)橱健,是下面這個(gè)方法導(dǎo)致的:

[subview drawViewHierarchyInRect:subview.bounds afterScreenUpdates:YES];

這是用來對網(wǎng)頁進(jìn)行截屏的方法而钞,當(dāng)afterScreenUpdates的參數(shù)是YES的時(shí)候,系統(tǒng)會(huì)等待所有視圖變更完畢之后采取截取屏幕拘荡。例如臼节,在調(diào)用了此方法之后,仍然去修改subview的樣式珊皿,那么系統(tǒng)就會(huì)等到修改完成之后才進(jìn)行截屏工作网缝。

把參數(shù)設(shè)成NO,或者不使用這個(gè)方法就會(huì)解決此問題蟋定。

類似的粉臊,還有以下這個(gè)方法:

- (nullable UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates NS_AVAILABLE_IOS(7_0);

凡是帶有"AfterScreenUpdates"字樣的參數(shù)應(yīng)該都有這個(gè)問題。

至于更深層次的原因驶兜,例如是不是調(diào)用以上的方法會(huì)占用GPU資源扼仲、還是影響了CSS動(dòng)畫繪制,我就不知道了抄淑,希望有大神能解答屠凶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市肆资,隨后出現(xiàn)的幾起案子矗愧,更是在濱河造成了極大的恐慌,老刑警劉巖迅耘,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贱枣,死亡現(xiàn)場離奇詭異,居然都是意外死亡颤专,警方通過查閱死者的電腦和手機(jī)纽哥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栖秕,“玉大人春塌,你說我怎么就攤上這事〈睾矗” “怎么了只壳?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長暑塑。 經(jīng)常有香客問我吼句,道長,這世上最難降的妖魔是什么事格? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任惕艳,我火速辦了婚禮搞隐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘远搪。我一直安慰自己劣纲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布谁鳍。 她就那樣靜靜地躺著癞季,像睡著了一般。 火紅的嫁衣襯著肌膚如雪倘潜。 梳的紋絲不亂的頭發(fā)上绷柒,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音窍荧,去河邊找鬼辉巡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蕊退,可吹牛的內(nèi)容都是我干的郊楣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瓤荔,長吁一口氣:“原來是場噩夢啊……” “哼净蚤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起输硝,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對情侶失蹤今瀑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后点把,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體橘荠,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年郎逃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哥童。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡褒翰,死狀恐怖贮懈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情优训,我是刑警寧澤朵你,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站揣非,受9級(jí)特大地震影響抡医,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜早敬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一魂拦、第九天 我趴在偏房一處隱蔽的房頂上張望毛仪。 院中可真熱鬧搁嗓,春花似錦芯勘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棍矛,卻和暖如春安疗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背够委。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國打工荐类, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茁帽。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓玉罐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親潘拨。 傳聞我的和親對象是個(gè)殘疾皇子吊输,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,095評(píng)論 25 707
  • 為什么分頁? 從開發(fā)者的角度來看铁追,如何加載所有內(nèi)容季蚂?一次不可能顯示很多的內(nèi)容。我們只能顯示它們的部分琅束。 分頁允許用...
    Kotyo閱讀 13,265評(píng)論 1 17
  • 今天和環(huán)姐簡單溝通了下扭屁,對自己有些啟發(fā),不管現(xiàn)在如何涩禀,至少我在路上料滥,是真正的想做好。 和會(huì)員溝通了她的情況埋泵,因?yàn)楸?..
    Mela仙仙閱讀 176評(píng)論 0 0
  • 圖文/飽粒兒 NO.4 小伙兒圍棋學(xué)得好幔欧,在班里所向披靡,孩子就是這樣丽声,越讓他有自信的事物礁蔗,他越愿意接觸,這段時(shí)間...
    飽粒兒麥子閱讀 381評(píng)論 0 1
  • 這是我們畢業(yè)的第四個(gè)年頭雁社,愿“我們不老浴井,青春不朽!C鼓臁磺浙!”的你們?nèi)绱喝瞻愕年柟夂槎冢錆M生機(jī)和希望。 壹——回憶起來撕氧,那...
    瑩火達(dá)歌閱讀 571評(píng)論 10 10