Je voudrais être en mesure de détecter quand un utilisateur fait glisser un fichier dans la fenêtre et afficher une superposition sur l'ensemble de l'application qui montre les différents dossiers que l'utilisateur pourrait télécharger le fichier. Jusqu'à présent, je comprends que je peux écouter la fenêtre pour "dragenter" et montrer ma superposition, et écouter la superposition de "dragleave" pour le cacher, mais le problème semble être que glisser sur les zones de dépôt provoque le déclenchement de l'événement dragleave de la superposition, ce qui rend la superposition masquée (ce qui fait que l'événement dragenter de la fenêtre affiche la superposition, et ainsi de suite). J'utilise Dropzone.js pour mon dossier dropzones. J'ai regardé autour de moi et j'ai vu des problèmes similaires aux miens, mais aucun qui résout ce problème.Comment gérer le glisser-déposer de fichiers avec une superposition de fenêtre et plusieurs zones de dépôt?
Modifier: J'ai trouvé une solution (de toutes sortes) ailleurs sur StackOverflow: jQuery Drag-and-Drop Flickering on Hover (Webkit only)
La solution est de vérifier l'événement sur DragLeave et, si le pageX et pageY sont tous deux 0, cela signifie que le DragLeave était parce que l'utilisateur a quitté la fenêtre, plutôt que traîné sur l'une des zones de dépôt.
Pour quel but vous voulez montrer la superposition? Pour arrêter le téléchargement de fichier? –
La page affichera par défaut les fichiers déjà téléchargés. Lorsque l'utilisateur fait glisser un fichier sur l'écran, la superposition affiche les dossiers disponibles sur lesquels il peut télécharger (un peu comme comment imgur.com traite les superpositions de téléchargement de fichiers, sauf avec plusieurs zones de largage et aucune zone de largage globale). Ainsi, l'objectif de la superposition est d'afficher les zones de dépôt de dossier à l'utilisateur. –
Vous souhaitez simplement afficher la superposition ou attendre une saisie de l'utilisateur, par exemple en sélectionnant le dossier de la superposition? –