Ich habe mehrere Dropzones zum Hochladen von Dateien auf einer Webseite
Wie werden alle Dropzone-Elemente hervorgehoben, sobald eine Datei in den Browser gezogen wird, damit der Benutzer weiß, wo er die Datei ablegen soll? Und wenn eine Datei über einen der dropzones gezogen wird, muss ich eine zusätzliche Klasse hinzufügen, um anzuzeigen, dass der Benutzer die Datei freigeben kann
kurideja wies mich in die richtige Richtung nach Dragster
Jetzt funktioniert es fast:)
html
%Vor%Javascript
%Vor%css
%Vor% Das Hauptproblem war: Nachdem der Dropzone-Bereich verlassen wurde, löste Dragster leave
zweimal aus, sowohl in .dropzone
als auch in window
. Einfach hinzufügen e.stopPropagation () löst das Problem. Es gibt auch einige weitere Korrekturen (entfernt show () und hide () innerhalb von Dropzone Dragster). Dein Code auf Fiddle und auch unten:
Sie können e.originalEvent.pageX
und e.originalEvent.pageY
beim Verschieben verwenden und prüfen, ob es sich in einem Bereich der Box befindet. Für dieses Beispiel habe ich die Dropzone kopiert und ich kenne die Breite und Höhe des Divs, so dass ich die Bedingung fest codieren konnte. Sie müssen einen Weg finden, um die Position (oben und links) der Dropzone-Bereiche zu speichern und zum Vergleich zu verwenden.
Meine Lösung wäre Ihrer Vorgehensweise sehr ähnlich. Wenn eine Datei in das Fenster geladen wird, fügen Sie eine css-Klasse zu dem Element hinzu, das alle Drop-Zonen enthält (falls nötig, body). Dann kannst du deine Drop-Zonen beim Ziehen entsprechend stylen:
%Vor%Das CSS wäre:
%Vor%Wenn das nicht das ist, was Sie wollten, bitte, sagen Sie es mir in einem Kommentar;)
BEARBEITEN Natürlich müssen Sie die Klasse entfernen, wenn die Datei gelöscht wird
%Vor%Tags und Links javascript jquery