PDA

View Full Version : [javascript]cambiare la trasparenza di un elemento in IE


chetidolanimale
10-02-2005, 14:33
ciao
ho un problema con un javascript, che in pratica dovrebbe cambiare ad intervalli fissi la trasparenza a un oggetto.Con firefox funziona correttamente(ovviamente settando la proprietà specifica per firefox), ma con IE non vuole funzionare e non capisco il perchè.Qualcuno può darmi una mano?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title></title>
</head>

<body>
<p id="prova" style="background-color:black;color:white" onClick="variaTras(90,true);">
ciao<br>oi<br>ld<br>ek
</p>
<script type="text/javascript"><!--
function variaTras(pa,fla) {//pa è un intero da -10 a 110 e rappresenta la percentuale di trasparenza da impostare; fla è un boolean, quando è a true la funzione abbassa la trasparenza,quando è a false la alza.
if (pa>=0 && pa<=100) {
document.getElementById("prova").style.filter = "alpha(opacity:"+pa+")"; //questa è l'istruzione che dovrebbe impostare la trasparenza in IE.
pa =fla?pa-10: pa+10 ; //se fla dice che stiamo abbassando la trasparenza(ossia è true), pa viene decrementato,se fla dice che stiamo alzando la trasparenza, pa viene incrementato.
window.setTimeout("variaTras("+pa+","+fla+")", 300); //questa istruzione richiama ricorsivamente la funzione principale con il nuovo valore di trasparenza e l'indicazione che deve continuare a fare quello che ha appena fatto
}
else //se siamo qui,allora la trasparenza è arrivata a 0 o a 100, quindi dobbiamo invertire l'operazione da fare
{pa=fla?pa+20: pa-20; //se stavamo abbassando la traspa,allora pa era a -10, quindi lo portiamo a 10, se stavamo alzando la traspa, allora pa era a 110 e la portiamo a 90.
fla= !fla; //inverto l'operazione da fare.
variaTras(pa,fla);chiamo la funzione, che se fino ad ora stava abbassando, adesso alzerà la traspa,e viceversa.}}
//--></script>
</body>
</html>

chetidolanimale
10-02-2005, 14:37
più in generale il problema non è cambiare una volta la trasparenza, ma cambiarla e poi cambiarla di nuovo dopo un certo intervallo,non so se mi sono spiegato:mc:

chetidolanimale
11-02-2005, 13:26
nessuno mi sa aiutare?
:cry:

chetidolanimale
14-02-2005, 17:56
ho provato a modificare la funzione,ma adesso non va più neanche con firefox....

<script type="text/javascript">
//<![CDATA[
function variaTras(pa,fla) {
if (pa>=0.0 && pa<=1.0) {
for(var i=0;i<=nomi.lenght;i++) nomi[i].style.opacity=pa;
pa =fla?pa-0.1: pa+0.1 ;
window.setTimeout("variaTras("+pa+","+fla+")", 300);
}
else
{pa=fla?pa+0.2: pa-0.2;
fla= !fla;
variaTras(pa,fla);}}

window.onLoad=function(){
tabella=document.getElementById("category2");
nomi=tabella.getElementsByTagName("span");
variaTras(0.9,true);};
//]]>
</script>

(per chi volesse testare lo script basta creare un contenitore,ad esempio una tabella,con id "category2",e metterci dentro degli elementi "span")
comq mai questa non funziona?a me sembrava fatta bene....forse c'è qualche metodo o proprietà o qualche altra cosa non supportata da firefox???help!!
thanks
:)

chetidolanimale
14-02-2005, 21:22
ho fatto un piccolo passo avanti:D , ho scoperto che con IE si può cambiare la trasparenza alle immagini ma non agli elementi span o p.....

chetidolanimale
14-02-2005, 21:38
mentre con firefox si può tranquillamente cambiare l'opacità a tutti gli elementi