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