Görüntüyü bulanıklaştırmak için CSS filtresi kullanmaya çalışıyorum. Tüm tarayıcılarda, bulanıklaştırma filtresi, bulanıklığı (beklenen) ayarladığınız değer ne olursa olsun, görüntünün sınırlarının dışına çıkan bulanıklıkla sonuçlanır. Ancak kenarların tanımlanmasını istiyorum (ve görüntüde kutu gölgesi var), bu yüzden görüntüyü overflow
hidden
olarak ayarlayarak başka bir div ile sardım. Bu, tüm tarayıcılarda çalışır. Bununla birlikte, bazı uygulamaya özel kısıtlamalar nedeniyle, yükleyicinin boyutunu yüklenen ve yeniden boyutlandırılan JavaScript ile güncellemem gerekiyor. Bu, Safari dışındaki tüm tarayıcılarda çalışır. Sarmalayıcı elemanın boyutunu değiştirmek, filtrenin sargının sınırlarından kaçmaya başladığı bir boyama hatasını rastgele tetikler. Her zaman değil, ama MobileSafari ve/veya DOM'ın büyüklüğüne dayanarak olabilir. Küçük bir demo ileBir filtrenin, taşma gizli olsa bile sınırlardan kaçmasına izin veren bir Safari hatası çevresinde nasıl çalışırım?
. Safari'yi kullanarak, pencereyi tekrar tekrar boyutlandırın ve hatayı tetikleyeceksiniz. Bazen kendini yeniden çizer ve tamir eder, bazen olmaz. (Chrome kullanın ya da Firefox ve iyi çalışacaktır.)
(Screenshot of the blur escaping the wrapper.)
Onların değiştirdiğinizde bu keman aksine uygulamada sadece, yeni genişlik ve yüksekliği kuruyorum unutulmamalıdırve Safari, yeniden boyutlandırma olayı sırasında genişlik ve yükseklik ayarlanmıyorken bile bulanıklıktan kaçma ile kaçma arasında dalgalanma gösterir. (Çalışmamış) denedim
şeyler: resize olayı clearTimeout
/setTimeout
overflow: hidden
sıfırlama işlemi tamamlanana kadar
- sarıcı genişliğinin hesaplama ve ayar geciktirme sarıcı ve
- (ve görüntü üzerinde ve üst elemanı üzerine) shenanigans Tüm türlü
window.getComputedStyle(wrapper)
çağrılması boyutunu - değiştirdikten sonra JavaScript görüntü hem Sargıyı bir kompozit elemana (ör. , görüntü akışının bulanıklığına neden olan
translateZ(0)
dönüştürür), ancak yeterli değil. (Screenshot.) Dönüşümü devre dışı bırakmak için bir zamanlayıcı ayarlamak, sayfayı tam bulanıklık kaçışına döndürür. 2/5/10 adedi (Evet, çaresizim)
object.style.width
/height
document.styleSheets[x].cssRules[x].style.setProperty()
ile genişlik ve yükseklik ayarlama sargıwhite-space: nowrap
ayarlamaŞu anda takılıyorum ve sağlayabileceğiniz her türlü yardımı çok takdir ediyorum. Teşekkür ederim!