ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
886
886
EMPFEHLEN
-
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?Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
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?Geändert von mrrogers (02.05.10 um 17:52 Uhr)
-
02.05.10 18:57 #2Maik Tutorials.de Gastzugang
-
also die Seite war nicht online aber inzwischen habe ich die Lösung gefunden, sie war gar ncihtmal so schwer. Beim InternetExplorer muss der "ScrollWert" zusätzlich addiert werden. Da gibt's auch Versionsunterschiede, deshalb verwendet man am besten:
(für den IE)Code :1 2
x = document.body.scrollLeft + document.documentElement.scrollLeft + e.clientX; y = document.body.scrollTop + document.documentElement.scrollTop + e.clientY;
trotzdem vielen Dank für deine Hilfe
-
Hi,
der IE verwendet für den Quirks- und Standardmode unterschiedliche Objekt für das body-Element. Hier musst du das richtige verwenden.
Beispiel:
Code :1 2 3 4 5 6
var objBody = null; // Passendes Body-Objekt ermitteln if(document.all && !window.opera) objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null; else objBody = document.documentElement;
Genauere Infos findest du zum Beispiel hier.
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
Ähnliche Themen
-
[C#] Drag (nicht Drop) Files
Von klanawagna im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 11.08.10, 08:27 -
Outlook Drag & Drop funktioniert auf Arbeitsrechner nicht
Von hausmeister079 im Forum .NET DatenverwaltungAntworten: 3Letzter Beitrag: 24.05.10, 09:14 -
Drag & Drop, aber doch nicht...
Von Ismix im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 17.02.09, 09:42 -
Drag&Drop funktioniert nicht richtig
Von Hookah im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 28.09.07, 12:43 -
Drag and Drop von ImageIcons funktioniert nicht
Von javaml im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 18.04.07, 13:10





Zitieren

Login





