हर बार एक समय में, Chrome पूरी तरह से मान्य HTML / CSS को गलत तरीके से प्रस्तुत करेगा या बिल्कुल नहीं करेगा। DOM इंस्पेक्टर के माध्यम से खुदाई करना अक्सर इसे अपने तरीके और त्रुटि को सही ढंग से महसूस करने के लिए प्राप्त करने के लिए पर्याप्त होता है, इसलिए यह साबित होता है कि मार्कअप अच्छा है। ऐसा अक्सर होता है (और अनुमानित रूप से) एक परियोजना में पर्याप्त है जिस पर मैं काम कर रहा हूं, मैंने कुछ परिस्थितियों में एक redraw को मजबूर करने के लिए कोड डाल दिया है।
यह अधिकांश ब्राउज़र / ओएस संयोजन में काम करता है:
el.style.cssText += ';-webkit-transform:rotateZ(0deg)'
el.offsetHeight
el.style.cssText += ';-webkit-transform:none'
के रूप में, कुछ अप्रयुक्त सीएसएस संपत्ति को ट्विस्ट करें, फिर कुछ जानकारी मांगें जो एक redraw को मजबूर करती है, फिर संपत्ति को अनटेक करें। दुर्भाग्य से, मैक के लिए क्रोम के पीछे की उज्ज्वल टीम को लगता है कि बिना किसी बदलाव के उस ऑफसेट को प्राप्त करने का एक तरीका मिल गया है। इस प्रकार एक अन्यथा उपयोगी हैक को मारना।
इस प्रकार अब तक, Chrome / Mac पर समान प्रभाव पाने के लिए मैं सबसे अच्छा आया हूं, यह कुरूपता का टुकड़ा है:
$(el).css("border", "solid 1px transparent");
setTimeout(function()
{
$(el).css("border", "solid 0px transparent");
}, 1000);
के रूप में, वास्तव में तत्व को थोड़ा कूदने के लिए मजबूर करते हैं, फिर एक सेकंड चिल करें और इसे वापस कूदें। इसे बदतर बनाते हुए, यदि आप उस टाइमआउट को 500ms (जहां यह कम ध्यान देने योग्य होगा) से नीचे छोड़ते हैं, तो इसका अक्सर वांछित प्रभाव नहीं होता है, क्योंकि ब्राउज़र को इसकी मूल स्थिति में वापस जाने से पहले इसे पुनः प्राप्त करने के लिए चारों ओर नहीं मिलेगा।
कोई भी इस redraw / रिफ्रेश हैक के बेहतर संस्करण की पेशकश करने के लिए परवाह करता है (अधिमानतः पहले उदाहरण के आधार पर) जो Chrome / Mac पर काम करता है?