मैं एक छवि को धुंधला करने के लिए एक सीएसएस फ़िल्टर का उपयोग करने की कोशिश कर रहा हूं। सभी ब्राउज़रों में, धुंध फ़िल्टर परिणामस्वरूप छवि के सीमाओं के बाहर धुंधला होता है जिसके लिए आप धुंध (अपेक्षित) सेट करते हैं। लेकिन मैं किनारों को परिभाषित करना चाहता हूं (और छवि को एक बॉक्स छाया है), इसलिए मैं छवि को overflow
पर hidden
पर एक और div के साथ लपेटता हूं। यह सभी ब्राउज़रों में काम करता है।मैं एक सफारी बग के आसपास कैसे काम करूं जो फ़िल्टर को अतिप्रवाह छिपाने के साथ भी बाध्य होने की अनुमति देता है?
हालांकि, कुछ ऐप-विशिष्ट बाधाओं के कारण, मुझे लोडर और आकार बदलने पर जावास्क्रिप्ट के साथ रैपर के आकार को अपडेट करने की आवश्यकता है। यह सफारी को छोड़कर सभी ब्राउज़रों में काम करता है। रैपर तत्व के आकार को बदलना यादृच्छिक रूप से एक पेंटिंग बग ट्रिगर करता है जहां फ़िल्टर रैपर की सीमा से बचने के लिए शुरू होता है। यह हमेशा नहीं होता है, लेकिन ऐसा लगता है कि मोबाइलसाफरी और/या डीओएम के आकार के आधार पर संभावना बढ़ रही है।
Here's a fiddle एक छोटे डेमो के साथ। सफारी का उपयोग करके, बार-बार विंडो का आकार बदलें और आप बग को ट्रिगर करेंगे। कभी-कभी यह खुद को पेंट और ठीक कर देगा, कभी-कभी यह नहीं होगा। (प्रयोग Chrome या Firefox और यह ठीक काम करेंगे।)
(Screenshot of the blur escaping the wrapper।)
यह ध्यान दिया जाना चाहिए कि इस बेला के विपरीत, आवेदन में मैं केवल नए चौड़ाई और ऊंचाई की स्थापना कर रहा हूँ जब वे बदलने के लिए, और सफारी अभी भी धुंध से बचने के बीच उतार-चढ़ाव करता है और आकार से बचने के दौरान भी चौड़ाई और ऊंचाई सेट नहीं किया जा रहा है।
बातें मैं कोशिश की है (कि काम नहीं किया):
- गणना और आवरण चौड़ाई की स्थापना में देरी जब तक आकार घटना
clearTimeout
/setTimeout
- unsetting का उपयोग करने और पर
overflow: hidden
को रीसेट पूरा हो गया है - कॉल करने के बाद जावास्क्रिप्ट के साथ दोनों रैपर और छवि दोनों
window.getComputedStyle(wrapper)
(और छवि पर, और मूल तत्व पर) - सभी प्रकार के शेंगेनिन्स रैपर को एक समग्र तत्व में बढ़ावा देना (उदा।
translateZ(0)
ट्रांसफॉर्म), जो धुंधला अतिप्रवाह के कुछ को रोकता है, लेकिन पर्याप्त नहीं है। (Screenshot।) ट्रांसफॉर्म को अक्षम करने के लिए टाइमर सेट करना बस पृष्ठ को पूर्ण धुंध से बचने के लिए देता है। - आवरण
- पर
white-space: nowrap
स्थापना के बजायobject.style.width
/height
- चौड़ाई और
document.styleSheets[x].cssRules[x].style.setProperty()
के माध्यम से ऊंचाई की स्थापना 2/5/10 के गुणकों (हाँ, मैं बेताब हूँ)
मैं इस समय बहुत अटक गया हूं, और आप जो भी सहायता प्रदान कर सकते हैं उसकी सराहना करेंगे। धन्यवाद!