Firefox zieht div wie es ein Bild war

8

Ich benutze diesen HTML-, CSS- und JavaScript-Code (in einem Dokument zusammen, wenn Sie es ausprobieren wollen):

%Vor%

Everything (überraschend) funktioniert gut im IE, aber Firefox scheint vollständig Clustercl * ck, wenn dieses Javascript verwendet wird. Die erste "Folie" ist in Ordnung, Sie ziehen, es sagt "gleiten", Sie fallen, es sagt "nicht gleiten". Auf der zweiten "Folie" (oder Mausklick, wenn du willst) denkt firefox plötzlich, dass das div ein Bild oder ein Link ist und es umher ziehen möchte.

Screenshot des Ziehens:

Offensichtlich ist der blaue div, der im roten div halb positioniert ist, derjenige, der gezogen wird. Windows nimmt den Cursor nicht auf, wenn Sie einen Screenshot machen, aber es ist ein Stoppschild.

Gibt es eine Möglichkeit, dieses Standardverhalten zu verhindern?

    
soren.qvist 12.03.2010, 01:25
quelle

2 Antworten

15

Sie müssen false von den Ereignisbehandlungsroutinen zurückgeben, um die Standardaktion zu verhindern (Auswahl von Text, Ziehen der Auswahl usw.). Basierend auf dem Code von Crispy, hier ist meine Lösung:

%Vor%     
Marius 12.03.2010, 02:39
quelle
4

Ordentlicher Fehler, nachdem er damit herumgespielt hat, sieht es so aus, als ob Firefox das mousedown-Ereignis auf dem Schieberegler merkt und behandelt, als ob der Benutzer angefangen hätte, einen Text auszuwählen (daher das "Stoppschild"). Also behandelt Firefox das nächste mousedown-Ereignis, als würde der Benutzer den Text irgendwo wegziehen. Es könnte eine geeignetere Lösung geben, aber einfach ein hinzufügen  %Code% macht den Trick seitdem Firefox "setzt" den Cursor zurück, so dass es nicht denkt, dass der Benutzer etwas Text zieht.

Ich würde auch gerne kommentieren, dass Sie wiederholt Ereignisse binden und lösen (was bei ie7 nicht gut zu sein scheint). Ich würde etwas wie das Folgende vorschlagen, das die Delegierten einmal bindet.

%Vor%     
Crispy 12.03.2010 02:30
quelle

Tags und Links