Felix Riesterer: Ebene an Mauszeigerposition

Beitrag lesen

Lieber Dominik,

ich möchte eine Ebene an der Position des Mauszeiges einblenden.

eine "Ebene"? Also so etwas, wie ein Element, das auf display:block und position:absolute gesetzt ist?

Mit folgendem Script funktioniert das Ganze im IE auch einwandfrei:

function show_ref(ort) {
   document.getElementById(ort).style.pixelTop = window.event.y + document.body.scrollTop + 15;
   document.getElementById(ort).style.pixelLeft = window.event.x + document.body.scrollLeft + 15;
   document.getElementById(ort).style.visibility = 'visible';
}

Wie kann dieses Script umbauen um es auch im Firefox/Netscape nutzen zu können?

Tja, da solltest Du besser keine proprietären CSS-Eigenschaften verwenden. Ich kenne pixelTop nicht, denn es gehört nicht zum CSS-Standard.

window.event.x und window.event.y sind auch für Geckos ungeeignet. Es gab hier im Forum mal einen Thread, da ging es um die Mauszeiger-Koordinaten. Aus der dortigen Diskussion habe ich für mein Script dann folgende Funktion entwickelt. Möge sie Dir nützen:

function koordinaten(ereignis)  
   {  
   var pos, box, IE;  
   box = document.getElementById("maus-tip");  
  
   if (!ereignis) ereignis = window.event;  
  
   pos = { left : ereignis.clientX, top : ereignis.clientY };  
  
   // powered by struppi  
   IE = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?  
           window.document.documentElement : window.document.body || null;  
  
   if (IE)  
      {  
      pos.left += IE.scrollLeft;  
      pos.top +=  IE.scrollTop;  
      }  
  
   box.style.left = pos.left -65 + "px";  
   box.style.top = pos.top + 20 + "px";  
   }

Liebe Grüße aus Ellwangen,

Felix Riesterer.