Ankündigung

Einklappen
Keine Ankündigung bisher.

mit JS Mauszeiger-Position ermitteln

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mit JS Mauszeiger-Position ermitteln

    Hey,

    ich würde gerne, bei Klick auf ein Objekt die MauszeigerPosition in 2 Variablen speichern (left, top).

    Ich habe schon viel im Inet gesucht und bin auf:

    window.event.offsetX

    gestossen.

    Das läuft allerdings nicht so richtig im FF.

    Daher hab ich weiter gesucht und das gefunden:

    Code:
    var top, left;
    function melde_koordinaten(e)
    {
    
    left =(window.event)?window.event.clientX:e.pageX;
    top  =(window.event)?window.event.clientY:e.pageY;
    alert (top + " " + left);
    }
    document.onclick=melde_koordinaten;
    Wenn ich nun irgendwo im Dokument klicke kommt ein Alert der mir sagt wo sich mein Mauszeiger befindet. Im IE und im FF läuft es einwandfrei, im Google Chrome dagegen kommt folgendes in dem Alert :

    [object DOMwindow] 77
    die 77 ist der Abstand vom linken Bildschirmrand (das passt auch) aber den Abstand vom oberen Bildschirmrand kann er irgendwie nicht aber warum?

    Und dann hab ich noch eine Frage, in dem Script oben gibt es eine Funktion Melde_koordinaten(e) wie man schon sieht hat er einen Parameter, dieser ist aber leer und wird trotzdem verwendet, wie geht das? oder ist e garnicht leer?


  • #2
    Zitat von ScriptChaos Beitrag anzeigen
    die 77 ist der Abstand vom linken Bildschirmrand (das passt auch) aber den Abstand vom oberen Bildschirmrand kann er irgendwie nicht aber warum?
    top ist als Fenstername „reserviert“, so wie parent oder self - vermutlich lässt dich Chrome den Wert nicht überschreiben.
    Benenne die Variable anders, dann sollte es passen.

    Und dann hab ich noch eine Frage, in dem Script oben gibt es eine Funktion Melde_koordinaten(e) wie man schon sieht hat er einen Parameter, dieser ist aber leer und wird trotzdem verwendet, wie geht das? oder ist e garnicht leer?
    Moderne Browser übergeben automatisch das event-Objekt als ersten Parameter an die den Event behandelnde Funktion.

    Informiere dich mal etwas über die Grundlagen des Objekthandlings mit JavaScript.

    Kommentar


    • #3
      top ist wohl eine vordefinierter Wert und damit reserviert. Die 77 ist vermutlich der left-Wert.
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Zitat von ChrisB Beitrag anzeigen
        top ist als Fenstername „reserviert“, so wie parent oder self - vermutlich lässt dich Chrome den Wert nicht überschreiben.
        Benenne die Variable anders, dann sollte es passen.
        Danke, hat wunderbar geklappt

        Kommentar


        • #5
          Zitat von ChrisB Beitrag anzeigen
          Moderne Browser übergeben automatisch das event-Objekt als ersten Parameter an die den Event behandelnde Funktion.

          Informiere dich mal etwas über die Grundlagen des Objekthandlings mit JavaScript.
          Ok, dann habe ich aber noch ne frage, wenn ich aber noch nen zweiten Parameter neben "e" übergeben möchte wie schreibe ich das dann?

          document.onclick = melde_koordinaten(?,parameter2);

          Uuuuund wo ihr gerade so nett seid und euch um mich kümmert noch eine Frage:

          wie kann ich die Funktion allg. aufrufen

          z.b. bei

          window.setTimeout(melde_koordinaten, 1);

          so z. B. ruft er die Funktion nicht auf.

          Kommentar


          • #6
            Zitat von ScriptChaos Beitrag anzeigen
            Ok, dann habe ich aber noch ne frage, wenn ich aber noch nen zweiten Parameter neben "e" übergeben möchte wie schreibe ich das dann?

            document.onclick = melde_koordinaten(?,parameter2);
            Nein, so ganz bestimmt nicht, weil du damit die Funktion zu diesem Zeitpunkt schon aufrufen würdest, und nicht wenn der Event passiert.


            Ich würde empfehlen, mal diesen Artikel durchzuarbeiten, der bringt schon einiges an Grundlagenwissen über zeitgemäßes JavaScript bei: Organisation von JavaScripten

            Kommentar

            Lädt...
            X