IE6 ignoriert im Standard-Modus document.body.scrollLeft u. -Top
Tobias Müller
- dhtml
0 Ingo Turski0 Maxx0 Elya
0 molily
Hallo Ihr,
Ich habe folgende Funktion, um die aktuelle Mausposition zu ermitteln:
function tmMausPosition(e) { // Die Maus-Position ermitteln
if (isDOM)
{
if (isIE5)
{
xPosMaus = window.event.clientX + document.body.scrollLeft;
yPosMaus = window.event.clientY + document.body.scrollTop;
}
else
{
xPosMaus = e.clientX + window.pageXOffset;
yPosMaus = e.clientY + window.pageYOffset;
}
}
}
Alles wunderbar in Opera, den Geckos und IE 5 bzw. 5.5. IE 6 macht im Quirks-Modus auch keine Probleme, befindet er sich allerdings im Standard-Modus, dann ignoriert er schlichtweg document.body.scrollLeft und document.body.scrollTop und gibt folglich, wenn das Dokument gescrollt wurde, nicht mehr die korrekte Position der Maus innherhalb des Dokuments zurück.
Gibt es Abhilfe für dieses Phänomen oder bleibt mir nur der Quirks-Modus für den IE6 übrig?
Nächtliche Grüße aus Köln
Mülli
Hi,
hast Du denn schonmal probiert, ob der IE6 im standards-compliant mode die DOM-Syntax versteht?
freundliche Grüße
Ingo
Hallo,
hast Du denn schonmal probiert, ob der IE6 im standards-compliant mode die DOM-Syntax versteht?
Ja hatte ich ausprobiert, versteht er aber nicht. Die Lösung siehe die Antworten von Maxx und Elya.
MfG Mülli
Hallo Tobias,
xPosMaus = window.event.clientX + document.body.scrollLeft;
yPosMaus = window.event.clientY + document.body.scrollTop;IE 6 macht im Quirks-Modus auch keine Probleme, befindet er sich allerdings im Standard-Modus, dann ignoriert er schlichtweg document.body.scrollLeft und document.body.scrollTop
im Standard ("CSS1Compat" Mode) Modus verbirgt sich dies Eigenschaft unter document.documentElement.scrollTop.
Den Modus erfährst du mit
if(document.compatMode)
alert(document.compatMode)
Grüße,
Jochen
Hallo,
im Standard ("CSS1Compat" Mode) Modus verbirgt sich dies Eigenschaft unter document.documentElement.scrollTop.
Etwas Lektüre dazu gibt es hier: http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/
Gruß aus Köln-Ehrenfeld,
Elya
Hallo,
im Standard ("CSS1Compat" Mode) Modus verbirgt sich dies Eigenschaft unter document.documentElement.scrollTop.
Etwas Lektüre dazu gibt es hier: http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/
Das ist die Lösung. :) Vielen Dank euch beiden!
MfG Mülli
Hallo,
Ich habe folgende Funktion, um die aktuelle Mausposition zu ermitteln:
function tmMausPosition(e) { // Die Maus-Position ermitteln
if (isDOM)
{
if (isIE5)
{
xPosMaus = window.event.clientX + document.body.scrollLeft;
yPosMaus = window.event.clientY + document.body.scrollTop;
}
else
{
xPosMaus = e.clientX + window.pageXOffset;
yPosMaus = e.clientY + window.pageYOffset;
}
}
}
Im Opera und Gecko kannst du übrigens direkt mit pageX bzw pageY arbeiten. Siehe Archiv, etwa </archiv/2004/3/74685/#m430305>. Dort hättest du auch die Lösung für dein IE-Problem gefunden.
Mathias