2009-06-25 7 views
1

Guten Tag an alle.Firefox: Holen Sie sich die Mauskoordinaten der oberen linken Ecke des Ansichtsfensters

Ich arbeite an einer Firefox-Erweiterung, und ich möchte einen Tooltip mit einem bestimmten Offset vom Mauszeiger aufrufen. Das Problem tritt jedoch auf, wenn dieser Offset außerhalb des Darstellungsbereichs liegt. Es wird angezeigt, aber der Benutzer muss dort blättern. Ich hoffe, dies zu verbessern, indem ich das Tooltip-Popup im aktuellen Ansichtsfenster verschiebe.

Allerdings entsteht ein Problem, weil der einzige Anhaltspunkt, wo ich im Dokument bin, ist die Mausposition. Eine Teillösung wäre, zu berechnen, wie viel ich meinen Tooltip bewegen soll, indem ich herausfinde, ob die aktuelle Mauskoordinate + die Tooltipbreite/-höhe ist und ob sie window.innerHeight oder window.innerWidth überschreitet.

Ich merke jedoch, dass, wenn es ein sehr langes Dokument war und der Benutzer ein wenig nach unten scrollte, die Mauskoordinate einen sehr großen y-Wert haben würde. Daher kann ich mich nicht ausschließlich auf window.innerHeight verlassen, um zu sehen, ob ich noch im Darstellungsbereich bin. Hat jemand eine Möglichkeit gefunden, die Mauskoordinate der oberen linken Ecke im Ansichtsfenster herauszufinden, wenn der Benutzer viel gescrollt hat?

Vielen Dank im Voraus! =)

Antwort

2

Insbesondere in Ihrem Fall document.body.scrollTop.

Das ist jedoch ziemlich IE-spezifische, die den Zweck der meisten FireFox-Erweiterungen besiegt. ;-) Es gibt auch einige DTD-Abhängigkeiten zum Booten.

Das sieht nach, was Sie wollen: Determining browser dimensions and document scroll offsets

+0

Ich sah die Antwort oben, bevor ich letzte Nacht ins Bett ging und ich versuchte, damit zu experimentieren. Es wurde jedoch zu früh am Morgen und ich schlief ein, bevor es mir gelang zu antworten. Ich habe versucht, den scrollTop-Wert zu erhalten, aber aus einem unbekannten Grund hat er immer Null zurückgegeben. window.pageXOffset und window.pageYOffset treffen den Nagel direkt in den Kopf. Vielen Dank! =) Ich habe etwas Neues gelernt. Ich bin glücklich und würde das zweimal aufwerten, wenn ich könnte. – wai

1

Ich glaube, Sie wie die scrollTop Eigenschaft etwas suchen: nach oben

scrollTop bekommt oder legt die Anzahl der Pixel, die der Inhalt eines Elements gescrollt wird.

+0

Vielen Dank für den Hinweis. Wird weiter untersuchen. – wai

0

@WAI - Nun, was du gesagt hast ist richtig, aber genau werden Sie die folgenden verwenden, wenn Sie für Firefox-Erweiterung arbeiten:

window.content.pageXOffset 

OR

window.content.pageYOffset