JavascriptProva

venerdì 22 febbraio 2013

Intercettare la sovrapposizione di un oggetto alla proiezione orizzontale di un altro oggetto

Adesso vorrei adattare la cosa a più oggetti insieme.
Creiamo un Array di tutti i DIV presenti nella pagina...

Devo creare un Array e aggiungervi tutti gli oggetti presenti.
Come si aggiunge un oggetto a un Array?

Fatto, fatto.
Mi ci sono ammattito un po' ma funziona muovendo ogni oggetto e intercetta la sovrapposizione di ogni oggetto con la proiezione orizzontale di qualsiasi altro oggetto.
function OnMouseMove(){
 
 Sx=BaseX+event.clientX-MouseX;
 Hi=BaseY+event.clientY-MouseY;
 Dx=Sx+EN(oggetto.currentStyle.width);
 Lo=Hi+EN(oggetto.currentStyle.height);
 
 
 $("test").innerHTML="";
 for(n=0;n<oggetti.length;n++){
  if(HorProject(oggetti[n])) {
   $("test").innerHTML= "centrato";
  }
 }
 
 
 oggetto.style.left=Sx+"px";
 oggetto.style.top=Hi+"px";
}
In rosso, la parte che "dà in pasto" alla funzione HorProject(ost) ogni elemento della matrice di tutti gli elementi DIV del documento.
L'array viene generato nell'ambito della funzione OnMouseDown:
function OnMouseDown(){
 oggetti=document.getElementsByTagName("div");
 ostacolo=$("ostacolo1");
 ostacolo2=$("ostacolo2");
 oggetto=event.srcElement;
 oggetto.onselectstart=function(){return false};
 BaseX=EN(oggetto.currentStyle.left);
 BaseY=EN(oggetto.currentStyle.top);
 MouseX=event.clientX;
 MouseY=event.clientY;
 document.onmousemove=OnMouseMove;
 document.onmouseup=OnMouseUp;
}
E funziona!

Adesso sarebbe il caso di passare anche alla sovrapposizione verticale, creando un'altra semplice funzione...

Nessun commento:

Posta un commento