miércoles, 25 de abril de 2007

Controlando el ratón

Hoy he necesitado tener controlado el punto exacto en el que se encontraba el ratón al pinchar sobre los links y botones de mi aplicación. Mirando aquí y allá lo he conseguido con el siguiente código javascript:

clickY = 0;
offsetY = 0;
clickIE = document.all ? true : false;
if (!clickIE) document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = md;
function md(e){
 if (clickIE) {
  if (document.documentElement && document.documentElement.scrollTop){
   offsetY = document.documentElement.scrollTop;
  }
  else{
   offsetY = document.body.scrollTop;
  }
  clickY = event.clientY + offsetY;
 }
 else {
  clickY = e.pageY;
  if (self.pageYOffset){
   offsetY = self.pageYOffset;
  }
 }
 if (clickY < 0){clickY = 0;}
 return true;
}


Con ello tenemos controlados en todo momento dos valores muy interesantes para abrir popups o menús de tipo drop down hechos con capas:

clickY, el punto en el eje Y del navegador donde se ha hecho click con el ratón
offsetY, el punto en el eje Y del navegador hasta donde se ha hecho scroll


Que aporveche¡