在Chrome/Mac上強(qiáng)制DOM重繪/刷新每隔一段時間,Chrome就會呈現(xiàn)出完全有效的HTML/CSS,或者根本不正確。深入了解DOM檢查器通常足以使它認(rèn)識到其方法的錯誤并正確地重新繪制,因此可以證明標(biāo)記是好的。在我正在進(jìn)行的項(xiàng)目中,這種情況經(jīng)常發(fā)生(而且可以預(yù)見),我已經(jīng)將代碼放置在適當(dāng)?shù)奈恢?,以便在某些情況下強(qiáng)制進(jìn)行重繪。這在大多數(shù)Browser/OS組合中都能實(shí)現(xiàn): el.style.cssText += ';-webkit-transform:rotateZ(0deg)'
el.offsetHeight
el.style.cssText += ';-webkit-transform:none'如所示,調(diào)整一些未使用的CSS屬性,然后請求一些強(qiáng)制重繪的信息,然后解壓該屬性。不幸的是,ChromeforMac背后的聰明團(tuán)隊似乎找到了一種不用重畫就能得到偏移HL.8的方法。從而殺死另一個有用的黑客。到目前為止,為了在Chrome/Mac上獲得同樣的效果,我想出的最好的方法就是這種丑陋: $(el).css("border", "solid 1px transparent");
setTimeout(function()
{
$(el).css("border", "solid 0px transparent");
}, 1000);實(shí)際上,強(qiáng)制元素跳一點(diǎn),然后冷卻一下,然后再跳回來。更糟糕的是,如果將超時時間降到500 ms以下(在不太明顯的地方),它通常不會產(chǎn)生預(yù)期的效果,因?yàn)闉g覽器在恢復(fù)到原來的狀態(tài)之前不會重新繪制。有人愿意提供更好版本的這種重繪/刷新黑客(最好是基于上面的第一個例子),在Chrome/Mac上工作嗎?
在Chrome/Mac上強(qiáng)制DOM重繪/刷新
慕村225694
2019-06-19 19:31:40