Hallo,
ich arbeite gerade an einem drag&drop-skript und es gibt Probleme mit dem Internet Explorer. Mit dem Skript kann ich Listenelemente (<li>) untereinander verschieben. Dazu wird beim aufruf von OnMouseDown ihre Position zu "absolute" geändert und dann mittels den style-Angaben "Left" und "Top" mit dem Mauszeiger verschoben (soweit, so standard). Nur der Internet Explorer macht die Sache nicht wie erwartet (Firefox, Opera läuft exzellent). Bei ihm sind die Boxen immer viel weiter oben als der Mauszeiger (schon beim Klick) und beim scrollen bleiben die kästen nicht am Mauszeiger haften (wie etwa in FF oder Opera).
Ist das ein typisches IE-Problem für das es eine Art 0815-Lösung gibt? Ich habe hier mal den relevanten Code-auszug:
muss ich vielleicht nur eine andere Funktion einsetzen?
Vielen Dank für eure Hilfe!
Vincent
edit: Bin nocheinmal weitergekommen! Das Problem tritt tatsächlich nur dann auf, wenn ich mit dem Drag weiter unten auf der Seite anfange (d.h. ich habe bereits auf der Seite gescrollt). Meine Vermutung ist jetzt: Der Internet-Explorer misst den Abstand zum oberen Bildschirmrand und nicht zum Anfang der Seite - wie kann man das umgehen?
ich arbeite gerade an einem drag&drop-skript und es gibt Probleme mit dem Internet Explorer. Mit dem Skript kann ich Listenelemente (<li>) untereinander verschieben. Dazu wird beim aufruf von OnMouseDown ihre Position zu "absolute" geändert und dann mittels den style-Angaben "Left" und "Top" mit dem Mauszeiger verschoben (soweit, so standard). Nur der Internet Explorer macht die Sache nicht wie erwartet (Firefox, Opera läuft exzellent). Bei ihm sind die Boxen immer viel weiter oben als der Mauszeiger (schon beim Klick) und beim scrollen bleiben die kästen nicht am Mauszeiger haften (wie etwa in FF oder Opera).
Ist das ein typisches IE-Problem für das es eine Art 0815-Lösung gibt? Ich habe hier mal den relevanten Code-auszug:
Code:
if(e.clientX){
x = e.clientX;
y = e.clientY;
}
if(e.offsetLeft){
x = e.offsetLeft;
y = e.offsetTop;
}
if(e.pageX){
x = e.pageX;
y = e.pageY;
}
dragobj.style.position = 'absolute';
dragobj.style.left = (x)+'px';
dragobj.style.top = (y)+'px';
Vielen Dank für eure Hilfe!
Vincent
edit: Bin nocheinmal weitergekommen! Das Problem tritt tatsächlich nur dann auf, wenn ich mit dem Drag weiter unten auf der Seite anfange (d.h. ich habe bereits auf der Seite gescrollt). Meine Vermutung ist jetzt: Der Internet-Explorer misst den Abstand zum oberen Bildschirmrand und nicht zum Anfang der Seite - wie kann man das umgehen?
Zuletzt bearbeitet: