HighDots Forums  

Positionsermittlung klappt nicht

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Positionsermittlung klappt nicht in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Thomas Weiler
 
Posts: n/a

Default Positionsermittlung klappt nicht - 01-17-2008 , 01:42 AM






Hallo,

ich ermittle mittels offsetX und offsetY die Position eines
Steuerelements. Klappt bei den "normalen" Seiten sehr gut. Nun habe ich
eine sehr komplexe Seite mit mehreren Span und Div Bereichen, in welche
die Steuerelemente untergebracht sind. Hier geben die beiden Parameter
generell 1 zurück. Egal wo auf der Seite sich das Steuerelement befindet.

Kennt jemand das Problem und gibt es alternative Möglichkeiten, wie ich
die Position des Steuerelements herausfinden kann? Also mir würde auch
reichen, wenn ich die Position des Cursors ermitteln kann. Die des
Mauszeigers habe ich schon versucht, nur ist der zu dem Zeitpunkt ja
irgendwo auf der Seite.

Danke für alle Antworten.

Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Positionsermittlung klappt nicht - 01-17-2008 , 03:54 AM






Thomas Weiler wrote:
Quote:
ich ermittle mittels offsetX und offsetY die Position eines
Steuerelements. Klappt bei den "normalen" Seiten sehr gut.
Es klappt dann, wenn einen MSHTML-basierten UA wie den IE und
ausschliesslich ein Zeigegerät benutzt. Die offsetX- und
offsetY-Eigenschaften eines Event-Objekts liefern dort nämlich
nicht die Position des Steuerelements, sondern die Koordinaten
des Zeigers relativ zur linken oberen Ecke der Box des Elements
beim Auslösen des Ereignisses.

Quote:
Nun habe ich eine sehr komplexe Seite mit mehreren Span und Div
Bereichen, in welche die Steuerelemente untergebracht sind. Hier geben
die beiden Parameter generell 1 zurück. Egal wo auf der Seite sich das
Steuerelement befindet.
Du suchst hingegen die offsetLeft- und offsetTop-Eigenschaften des
Elementobjekts. Zu diesen musst Du jeweils solange rekursiv die
offsetLeft- und offsetTop-Eigenschaften des mit der Eigenschaft
offsetParent referenzierten Objekts addieren, bis offsetParent kein
Objekt mehr referenziert (i.d.R. hat es dann den Wert `null'). Das
klappt dann auch in !MSHTML, z.B. Gecko-basierten UAs wie Firefox.

Quote:
Kennt jemand das Problem und gibt es alternative Möglichkeiten, wie ich
die Position des Steuerelements herausfinden kann? Also mir würde auch
reichen, wenn ich die Position des Cursors ermitteln kann.
Nichts anderes tust Du bereits. In Gecko-basierten UAs benötigst
Du dafür die Eigenschaften clientX und clientY des per Argument
übergebenen Event-Objekts, wobei diese die Position des Zeigers
relativ zum Viewport liefern.

Quote:
Die des Mauszeigers habe ich schon versucht, nur ist der zu dem Zeitpunkt
ja irgendwo auf der Seite.
Eben.


PointedEars
--
Dann mußt Du aber eine andere DTD in den Dogtype eintragen,
weil Dich sonst das W3C beißt.

(Georg Maaß in dcljs <an4mm7$aur11$2 (AT) ID-3551 (DOT) news.dfncis.de>)


Reply With Quote
  #3  
Old   
J. Strübig
 
Posts: n/a

Default Re: Positionsermittlung klappt nicht - 01-17-2008 , 05:08 AM



Thomas Weiler schrieb:
Quote:
ich ermittle mittels offsetX und offsetY die Position eines
Steuerelements. Klappt bei den "normalen" Seiten sehr gut. Nun habe ich
eine sehr komplexe Seite mit mehreren Span und Div Bereichen, in welche
die Steuerelemente untergebracht sind. Hier geben die beiden Parameter
generell 1 zurück. Egal wo auf der Seite sich das Steuerelement befindet.
Das ist zwar schön beschrieben, hilft aber nicht um dein Problem zu
erkennen. Ich vermute dass du die offset Werte der eltern Elemente vergißt.

Ach, und offsetX/Y existiert nicht, du meinst vermutlich offsetTop/Left,
oder?

Quote:
Kennt jemand das Problem und gibt es alternative Möglichkeiten, wie ich
die Position des Steuerelements herausfinden kann? Also mir würde auch
reichen, wenn ich die Position des Cursors ermitteln kann. Die des
Mauszeigers habe ich schon versucht, nur ist der zu dem Zeitpunkt ja
irgendwo auf der Seite.
Zu welchem Zeitpunkt?
Aber die Ermittlung der Position des Mauszeiger ist komplzierter als die
der Position eines Elementes.

Struppi.


Reply With Quote
  #4  
Old   
Thomas Weiler
 
Posts: n/a

Default Re: Positionsermittlung klappt nicht - 01-17-2008 , 10:05 AM



Danke,

mittels offsetParent konnte ich in der Hirarchie nach oben springen, wo
dann das gesamte Fenster berücksichtigt wird.

Thomas 'PointedEars' Lahn schrieb:
Quote:
Thomas Weiler wrote:
ich ermittle mittels offsetX und offsetY die Position eines
Steuerelements. Klappt bei den "normalen" Seiten sehr gut.

Es klappt dann, wenn einen MSHTML-basierten UA wie den IE und
ausschliesslich ein Zeigegerät benutzt. Die offsetX- und
offsetY-Eigenschaften eines Event-Objekts liefern dort nämlich
nicht die Position des Steuerelements, sondern die Koordinaten
des Zeigers relativ zur linken oberen Ecke der Box des Elements
beim Auslösen des Ereignisses.

Nun habe ich eine sehr komplexe Seite mit mehreren Span und Div
Bereichen, in welche die Steuerelemente untergebracht sind. Hier geben
die beiden Parameter generell 1 zurück. Egal wo auf der Seite sich das
Steuerelement befindet.

Du suchst hingegen die offsetLeft- und offsetTop-Eigenschaften des
Elementobjekts. Zu diesen musst Du jeweils solange rekursiv die
offsetLeft- und offsetTop-Eigenschaften des mit der Eigenschaft
offsetParent referenzierten Objekts addieren, bis offsetParent kein
Objekt mehr referenziert (i.d.R. hat es dann den Wert `null'). Das
klappt dann auch in !MSHTML, z.B. Gecko-basierten UAs wie Firefox.

Kennt jemand das Problem und gibt es alternative Möglichkeiten, wie ich
die Position des Steuerelements herausfinden kann? Also mir würde auch
reichen, wenn ich die Position des Cursors ermitteln kann.

Nichts anderes tust Du bereits. In Gecko-basierten UAs benötigst
Du dafür die Eigenschaften clientX und clientY des per Argument
übergebenen Event-Objekts, wobei diese die Position des Zeigers
relativ zum Viewport liefern.

Die des Mauszeigers habe ich schon versucht, nur ist der zu dem Zeitpunkt
ja irgendwo auf der Seite.

Eben.


PointedEars

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.