Ho fatto qualche ricerca e ho appreso da una pagina web che si può usare anche la sintassi document.body.innerHTML, con gli stessi risultati... e sempre con la stessa mancanza di risultato in Internet Explorer... GRUNTH!
function linea(nomeLinea,spessore,colore,orgX,orgY,lunghezza,ang){ var nomeLinea=nomeLinea; var orgX=orgX; var orgY=orgY; var lunghezza=lunghezza; var angolo=ang; var velAng; var intervallo; var spessore=spessore; var linea=""; this.disegna=function(){ for (var n=0;n<=lunghezza;n++){ linea+="<div id='"+nomeLinea+n+"' style='font-size:1px;position:absolute;left:"+(orgX+n*Math.cos(angolo*Math.PI/180))+"px;top:"+(orgY+n*Math.sin(angolo*Math.PI/180))+"px;background-color:"+colore+";width:"+spessore+"px;height:"+spessore+"px'></div>"; } document.body.innerHTML+=linea; } this.disegna.call(); this.step=function(){ for(var n=0;n<=lunghezza;n++){ document.getElementById(nomeLinea+n).style.left=orgX+n*Math.cos(angolo*Math.PI/180); document.getElementById(nomeLinea+n).style.top=orgY+n*Math.sin(angolo*Math.PI/180); } angolo+=velAng; } this.ruota=function(velocitaAngolare,tempo){ window.clearInterval(intervallo); velAng=velocitaAngolare; intervallo=window.setInterval(function(linea) {linea.step()},tempo,this); } }E così riesco ad eseguire questo:
<script type="text/javascript" src="linea.js"></script> <script> var prima; function traccia(){ prima=new linea("uno",2,"green",100,100,300,45); prima.ruota(1,1); } </script> <body onLoad="traccia()"> <div>Ciao fesso</div> </body>che prima anche in Firefox non funzionava. Funziona, come al solito, in Firefox ma non in IE.
Dovrò decidermi prima o poi a imparare la lingua di IE...
Nessun commento:
Posta un commento