Ragazzi sapere dirmi come posso rendere un div semitrasparente con javascript?
Una volta avevo visto uno script che cambiava l'opacità ma non ricordo bene.
Ragazzi sapere dirmi come posso rendere un div semitrasparente con javascript?
Una volta avevo visto uno script che cambiava l'opacità ma non ricordo bene.
Dalla tua domanda non si capisce se vuoi un effetto fade che cambi l'opacità di un elemento gradualmente o se semplicemente vuoi settare l'opacità a un certo valore.
Nel secondo caso basta un pò di css.
Voglio settare l'opacità a un certo valore.
Con i css so come fare, ma il problema è il Magnifico IE 6.0, è per questo che voglio usare javascript perchè forse risolverei anche con quel Browser di me...a.
Sai dirmi come fare?
Sulla m***a siamo d'accordo, in ogni caso anche IE permette, con una sintassi molto fantasiosa, di modificare l'opacità col css:
Dove i valori vanno da 0 a 100.codice:filter:alpha(opacity=80);
Se proprio vuoi usare javascript puoi usare questa funzioncina:
L'ho scritta al volo quindi nn so se funziona, comunque devi passare due argomenti, l'oggetto html e l'opacità ( in scala da 1 a 100 come in IE )codice:function setOpacity(obj, op) { if(obj.filters) obj.filters.alpha.opacity = op + ""; else { var s = obj.style; s.opacity = s.KhtmlOpacity = s.MozOpacity = op / 100 + ""; } }
Ho completato la funzione ma mi dice che filters non è un oggetto.
Ma forse ho sbagliato io
Codice PHP:<script type="text/javascript">
var obj = document.getElementById("raggruppa");
var op = 65;
function setOpacity(obj, op) {
if(obj.filters)
obj.filters.alpha.opacity = op + "";
else {
var s = obj.style;
s.opacity = s.KhtmlOpacity = s.MozOpacity = op / 100 + "";
}
}
</script>
Non vorrei dire boiate ma credo che dipenda dal doctype. Questo dovrebbe funzionare in ogni caso:
codice:<script type="text/javascript"> var obj = document.getElementById("raggruppa"); var op = 65; function setOpacity(obj, op) { if(navigator.appName == "Microsoft Internet Explorer") obj.style.filter = "alpha(opacity=" + op + ")"; else { var s = obj.style; s.opacity = s.KhtmlOpacity = s.MozOpacity = op / 100 + ""; } } </script>
Purtoppo non funziona nemmeno ora mi viene detto che alla riga 6 'style' è nullo o non è un oggetto.
state dimenticando un requisito fondamentale per IE per applicare l' opacita' e filtri in generale ad un elemento,
come scritto qui http://msdn2.microsoft.com/en-us/library/ms532847.aspx
l' elemento deve "avere layout" (has layout),Almost any object can have filters applied to it. However, the object that the filter is applied to must have layout before the filter effect will display. Put simply, having layout means that an object has a defined height and width. Some objects, like form controls, have layout by default. All other filterable objects gain layout by setting the height or width property, setting the position property to absolute, setting the writingMode property to tb-rl, or setting the contentEditable property to true.
You can also apply a filter to the BODY element. The BODY element automatically has layout because it specifically contains the client area of the window.
il che si ottiene, oltre che con i metodi sopra citati, aggiungendo zoom:1 nella regola css per quell' elemento
Buono a sapersi, però non capisco perchè obj.filters.alpha.opacity non mi funzioni e invece obj.style.filter si ( ho IE6 ). Dipende davvero dal doctype o non c'entra una mazza?![]()
Per quanto riguarda il problema di wino credo che in realtà non dipendi da questo, infatti gli viene l'errore "style è nullo o non è un oggetto"
Hai richiamato la funzione correttamente?
EDIT: Mi rispondo da solo; per poter usare obj.filters.alpha.opacity è necessario settare filter:alpha(opacity=xx) nel css. Ora solo non capisco perchè questa limitazionecodice:setOpacity(document.getElementById("raggruppa"), 65);![]()