2011-12-25 28 views
5

Saydam bir arka plan rengine sahip olmak istiyorum ve IE'de RGBA'nın geri dönüşü olarak degrade filtresi kullanıyorum. Ayrıca kullanıcı arka plan tıkladığında bir olayı tetiklemek istiyorumIE degrade filtresi click olayı yanıt vermiyor

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#bfffffff,endColorstr=#bfffffff); 

ama Filtreyi ayarladıktan sonra tıklama olayı tetiklenir almaz gibi görünüyor: Kod böyledir. Filtre olmadan her şey yolunda.

Başka bir IE hatası mı? Sorunu nasıl çözebilirim?

+0

IE DX filtrelerinin #RRGGBBAA yerine #AARRGGBB kullandığını biliyor musunuz? –

+0

Evet. Ve şeffaf etki iyi çalışıyor. Sorun, filtre – bububut

+0

filtresini uyguladıktan sonra tıklatma olayının başlatılamamasıdır, sadece yaptığınızdan emin oldum. (Beni ilk karşılaştığımda habersiz yakaladı.) Sorunun formuna uygun bir şekilde dikkat etseydim, ne yaptığınızı görürdüm. Aynı tekniği birkaç gün önce düşünmüştüm ... eğer bulduğumda bana zaman kazandıracak ilginç bir problemle karşılaştım! –

cevap

6

Bu, büyük olasılıkla artık şeffaf arka plan ile bağlantı kuramayan IE hatası ile ilişkilidir: Ben bugün bunun karşısına çıktım. Saydam bir arka plan ve görüntü engellemek için bir bağlantı vardı: bağlantının ana alanı tıklanabilir değildi, ancak üzerinde ayarlanmış bir 10px sınır oldu. IE de filtreler ile ilgili sorunlar var gibi görünüyor.

Bu tür bir hata, here ve here olarak ele alınmıştır. İlk adamın çözümü, filtreyi ayarlamadan önce cihaza sahte arka plan görüntüsü vermektir. İkinci kişi, öğeye bir arka plan rengi vermek ve% 1'e kadar opaklığı ayarlayarak, IE'de neredeyse görünmez kılacak. Umarım bunlardan birini kullanarak yuvarlayabilirsiniz.

1

Bu anlaşma değil. Internet Explorer, filtreleri elementinizin üzerine yerleştirilen ayrı bir katman üzerinde yaratır ve yeni grafik katmanı öğenin bir parçası olmadığı için - tıklama etkinliğine sahip olduğunuzdan - etkinlik kabarcıklandırmaya neden olmaz.

Son zamanlarda IE için güzel bir degrade filtreli bir etiket öğesi oluşturdum. Sadece metin tıklanabilir. Etiket katmanlarını, gradyan katmanının bulunduğu ve olmayan taraftan analiz edersem, sorunu anlayacaksınız.

without gradient filter: 

------------------ 
text layer 
------------------ 
background layer 
------------------ 


with gradient filter: 

------------------ 
text layer 
------------------ 
gradient layer 
------------------ 
background layer 
------------------ 

Bu arada, neden de bir degrade filtresine bir kenarlık sınırı yerleştiremiyorsunuz. Dene. Bir öğe oluşturun ve kenarlık yarıçapı ile stilleyin ve bunu bir degrade filtresi verin ve IE 9'da çalıştırın. Eğimi, yuvarlak sınırları içinde kalmak için nasıl zorlamaya çalıştığınız önemli değil - örneğin taşma: gizli - ile, asla itaat etmek. Metninizin altında ve sağında yer alacak şekilde elementinizin üzerinde mutlak ve tam olarak konumlandırılmış ayrı bir eleman gibi.

İlgili konular