Ho uno strano problema con l'opacità con IE.
Avendo bisogno di gestire l'opacità di una immagine attraverso il passaggio del mouse sopra l'immagine stessa ho fatto una cosa del genere :
[img]immagine.jpg[/img]
dove high() aumenta la opacità al 100% (quando si passa sopra l'immagine) e low() la ripristina al 70% (quando si esce dall'immagine).
Ora, le due funzione javascript, fanno una cosa del genere, indicativamente :
if (imgobj.style.MozOpacity)
imgobj.style.MozOpacity=OpacityVal;
else if (imgobj.style.opacity)
imgobj.style.opacity=OpacityVal;
else if (imgobj.filters)
imgobj.filters.alpha.opacity=OpacityVal;
E, provando in locale, sia con IE6 che con Firefox tutto va alla grande.
Quando poi ho trasferito la pagina online, IE non ha più voluto saperne di funzionare (in locale continua a funzionare). Ovvero quando passo col mouse sopra l'immagine e quando ne esco Javascript genera un errore 'sconosciuto', come se imgobj.filters creasse problemi ed inoltre la opacità iniziale dell'immagine (al 70%) non viene manco presa in considerazione.
Naturalmente ho provato anche cose del tipo:
imgobj.filters.item("DXImageTransform.Microsoft.Al pha").opacity=OpacityVal;
e addirittura senza l'utilizzo di Javascript per gestire il cambio di opacità, ma usando delle class CSS del tipo (abbinate ad un tag <A> che contiene l'immagine)
.imgopacity img{
filterrogid: DXImageTransform.Microsoft.Alpha(opacity=70);
-moz-opacity: 0.7;
background-color:#fff;
}
.imgopacity:hover img{
filterrogid: DXImageTransform.Microsoft.Alpha(opacity=100);
-moz-opacity: 1;
background-color:#fff;
}
ma senza risultato. Ovvero in locale TUTTO FUNZIONA con IE ma quando la pagina è online, IE:
1) Non imposta l'opacità iniziale dell'immagine, indicata nell'attributo STYLE del tag IMG
2) Le funzioni Javascript che gestiscono la variazione di opacità legata al passaggio del mouse, generano un errore sconosciuto.
Una cosa davvero strana !
PS: sbirciando a destra e a manca ho visto che anche altri siti dove è gestita l'opacità con i filtri DirectX di IE non hanno nessun effetto.

rogid: DXImageTransform.Microsoft.Alpha(opacity=70);
Rispondi quotando
