Dominik: Ebene an Mauszeigerposition

Hallo Zusammen,

ich möchte eine Ebene an der Position des Mauszeiges einblenden. 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?

Vielen Dank, beste Grüße
Dominik

  1. 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.

    1. // powered by struppi
         IE = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?
                 window.document.documentElement : window.document.body || null;

      Ist natürlich nett gemeint, aber das ist nicht auf meinem Mist gewachsen.

      Ich glaub die Version hab ich von Quirksmode übernommen, anfänglich hatte ich nämlich nur auf compatMode getestet, was aber nicht immer zum richtigen Ergebniss führt, daher der konkrete Test auf "CSS1Compat".

      Struppi.