


Ajout de la fonctionnalité de glisser-déposer à l'aide de l'API HTML5 GRAG et Drop.
Jul 05, 2025 am 02:43 AMLa fa?on d'ajouter des fonctionnalités de glisser-déposer à une page Web est d'utiliser l'API Drag and Drop de HTML5, qui est en charge nativement sans bibliothèques supplémentaires. Les étapes spécifiques sont les suivantes: 1. Définissez l'élément drawgable = "true" pour activer glisser; 2. écoutez les événements DragStart, Dragover, Drop and Dragend; 3. Définissez les données dans DragStart, bloquez le comportement par défaut dans Dragover et gérez la logique dans Drop. En outre, le mouvement des éléments peut être réalisé via l'appendchild et le téléchargement de fichiers peut être réalisé via e.datatransfer.files. REMARQUE: PARVERDEFAULT () doit être appelé pour déclencher une goutte. Le c?té mobile prend mal. Il est recommandé d'utiliser une bibliothèque tierce pour un tri complexe.
Il n'est en fait pas difficile d'ajouter des fonctions de glisser-déposer aux pages Web, et il peut être réalisé à l'aide de l'API Drag and Drop de HTML5. Il est soutenu nativement et ne nécessite pas l'introduction de bibliothèques supplémentaires. Il convient aux interactions telles que les téléchargements de fichiers et le tri des éléments.

Préparation: définir des éléments dragables
Pour faire glisser un élément, ajoutez d'abord l'attribut draggable="true"
. Par exemple, une <div> ou l'image ne peut pas être glissée par défaut, mais l'événement de glisser peut être déclenché après avoir ajouté cette propriété. <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/175165462390139.jpeg" class="lazy" alt="Ajout de la fonctionnalité de glisser-déposer à l'aide de l'API HTML5 GRAG et Drop."><pre class='brush:php;toolbar:false;'> <div draggable = "true"> glisser-moi pour essayer </div></pre><p> Ensuite, vous devez écouter plusieurs événements clés: <code>dragstart
, dragover
, drop
and dragend
. Ces événements correspondent aux actions de la tra?née de démarrage, de la tra?née sur la zone cible, de la libération de la souris et de la tra?née des extrémités.
Processus de base de la tra?née et de la chute
L'opération de tra?née et de chute est principalement divisée en trois étapes:

- Commencez à faire glisser : définissez des données de glisser-filet et des effets dans
dragstart
. - Glisser vers la zone cible : bloquer le comportement par défaut dans
dragover
, sinondrop
ne peut pas être déclenchée. - Placement gratuit : traitez les données en
drop
et entièrement logique.
Par exemple, vous souhaitez faire glisser une bo?te dans une autre zone:
const dragel = document.QuerySelector ('# drag'); const dropzone = document.QuerySelector ('# drop-zone'); dragel.addeventListener ('dragstart', (e) => { e.datatransfer.setData (?Text / Plain?, ?Ceci est tra?né des données?); }); dropzone.addeventListener ('dragover', (e) => { E.PreventDefault (); // Le comportement par défaut doit être bloqué afin de déclencher une goutte }); dropzone.addeventListener ('drop', (e) => { const data = e.datatransfer.getData ('texte / plaine'); Console.log (?Données re?ues:?, données); });
Cela complète l'interaction la plus basique de glisser-déposer.
Glisser-déposer avancé: déplacer des éléments ou des téléchargements de fichiers
En plus de passer des données de texte, vous pouvez également utiliser la glisser-déposer pour déplacer les éléments DOM ou télécharger des fichiers.
Par exemple, si vous souhaitez faire glisser un élément d'un conteneur à un autre, vous pouvez ajouter le n?ud vers le nouvel emplacement lors de drop
:
dropzone.addeventListener ('drop', (e) => { const id = e.datatransfer.getData ('texte / plaine'); const draggedEl = document.getElementById (id); DropZone.ApendChild (DraggedEl); });
S'il s'agit d'un scénario de téléchargement de fichiers, comme faire glisser une image locale vers la page, vous pouvez obtenir la liste de fichiers via e.dataTransfer.files
:
dropzone.addeventListener ('drop', (e) => { const Files = E.Datatransfer.Files; pour (let fichier de fichiers) { if (file.type.startswith ('image /')) { const Reader = new FileReader (); reader.onload = () => { const img = document.createElement ('img'); img.src = reader.result; dropzone.appendChild (IMG); }; Reader.ReadAsDataurl (fichier); } } });
Cette partie du code peut être directement prévisualisée après avoir fait glisser l'image.
Notes et FAQ
Certains détails sont facilement négligés lors de l'utilisation de l'API HTML5 Drag and Drop:
-
dragover
doit appelerpreventDefault()
, sinondrop
ne sera pas déclenchée - Différents navigateurs peuvent avoir une prise en charge différente pour les styles de glisser-déposer, tels que la glisser et le curseur.
- La prise en charge mobile pour la tra?née et la chute natives n'est pas très bonne, et des événements tactiles supplémentaires sont requis
- Si vous souhaitez faire un tri et dép?t complexe, vous pouvez envisager de combiner des bibliothèques tierces (comme SortableJS)
Fondamentalement, tout cela. Bien que la fonction de tra?née et de dép?t de HTML5 soit simple, elle peut également produire de bons effets d'interaction après utilisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

La fa?on d'ajouter des fonctionnalités de glisser-déposer à une page Web est d'utiliser l'API DragAndDrop de HTML5, qui est en charge nativement sans bibliothèques supplémentaires. Les étapes spécifiques sont les suivantes: 1. Définissez l'élément drawgable = "true" pour activer glisser; 2. écoutez les événements DragStart, Dragover, Drop and Dragend; 3. Définissez les données dans DragStart, bloquez le comportement par défaut dans Dragover et gérez la logique dans Drop. De plus, le mouvement des éléments peut être réalisé via l'appendchild et le téléchargement de fichiers peut être réalisé via e.datatransfer.files. Remarque: la prévention doit être appelée

Lorsque vous utilisez HTML5SSE, les méthodes pour gérer la reconnexion et les erreurs incluent: 1. Comprendre le mécanisme de reconnexion par défaut. Eventsource réessayer 3 secondes après l'interrompu de la connexion par défaut. Vous pouvez personnaliser l'intervalle via le champ de réessayer; 2. écoutez l'événement d'erreur pour gérer les erreurs de défaillance de connexion ou d'analyse, distinguer les types d'erreurs et exécuter la logique correspondante, telles que les problèmes de réseau en s'appuyant sur la reconnexion automatique, les erreurs de serveur retardent manuellement la reconnexion et la défaillance de l'échec d'authentification Rafra?chissement du jeton; 3. Contr?lez activement la logique de reconnexion, telle que la fermeture et la reconstruction manuelle de la connexion, en définissant le nombre maximum de temps de réessayer, combinant Navigator.online pour juger l'état du réseau pour optimiser la stratégie de réessayer. Ces mesures peuvent améliorer la stabilité des applications et l'expérience utilisateur.

Pour appeler GeolocationAPI, vous devez utiliser la méthode Navigator.Geolocation.getCurrentPosition () et faire attention aux autorisations, à l'environnement et à la configuration. Vérifiez d'abord si le navigateur prend en charge l'API, puis appelez GetCurrentPosition pour obtenir des informations de localisation; L'utilisateur doit autoriser l'accès à l'emplacement; L'environnement de déploiement doit être HTTPS; La précision ou le délai d'expiration peut être amélioré via des éléments de configuration; Le comportement mobile peut être limité par les paramètres de l'appareil; Le type d'erreur peut être identifié via Error.Code et donné des invites correspondantes dans le rappel échoué pour améliorer l'expérience utilisateur et la stabilité fonctionnelle.

La raison principale pour laquelle les navigateurs restreignent la lecture automatique des vidéos HTML5 est d'améliorer l'expérience utilisateur et d'empêcher la lecture sonore et la consommation de ressources non autorisées. Les principales stratégies incluent: 1. Lorsqu'il n'y a pas d'interaction utilisateur, la lecture automatique audio est interdite par défaut; 2. Autoriser la lecture automatique muette; 3. Les vidéos audio doivent être lues après le clic de l'utilisateur. Les méthodes pour réaliser la compatibilité comprennent: la définition de propriétés muet, muette d'abord puis jouer en js, et en attente d'interaction utilisateur avant de jouer. Les navigateurs tels que Chrome et Safari fonctionnent légèrement différemment sur cette stratégie, mais la tendance globale est cohérente. Les développeurs peuvent optimiser l'expérience par la première lecture muette et fournir un bouton résistant à la recherche, surveiller les clics des utilisateurs et gérer les exceptions de lecture. Ces restrictions sont particulièrement strictes sur les appareils mobiles, dans le but d'éviter la consommation inattendue de trafic et les vidéos multiples

Pour améliorer la compatibilité vidéo HTML5, un support multi-format est nécessaire. Les méthodes spécifiques sont les suivantes: 1. Sélectionnez trois formats traditionnels: MP4, WebM et OGG pour couvrir différents navigateurs; 2. Utilisez plusieurs éléments dans la balise pour les organiser en fonction de la priorité; 3. Faites attention aux stratégies de préchargement, à la configuration du domaine croisé, à la conception réactive et à la prise en charge des sous-titres; 4. Utilisez Handbrake ou FFMPEG pour la conversion de format. Cela garantit que les vidéos sont lues en douceur sur toutes sortes d'appareils et de navigateurs et optimise l'expérience utilisateur.

La raison pour laquelle les étiquettes sémantiques ARIA et HTML5 sont nécessaires est que, bien que les éléments sémantiques HTML5 aient des significations d'accessibilité, ARIA peut compléter la sémantique et améliorer les capacités de reconnaissance des technologies auxiliaires. Par exemple, lorsque les navigateurs hérités manquent de support, les composants sans balises natifs (tels que les bo?tes modales) et les mises à jour d'état doivent être mises à jour dynamiquement, ARIA fournit un contr?le granulaire plus fin. Les éléments HTML5 tels que NAV, Main, mis à part correspondent à Ariarole par défaut, et n'ont pas besoin d'être ajoutés manuellement, sauf si le comportement par défaut doit être remplacé. Les situations où ARIA doit être ajoutée comprennent: 1. Compléter les informations d'état manquantes, telles que l'utilisation de l'ARIA expansée pour représenter le statut d'expansion / effondrement du bouton; 2. Ajouter des r?les sémantiques aux balises non sémantiques, comme utiliser le r?le div pour implémenter des onglets et les faire correspondre

Les risques de sécurité des demandes HTML5 doivent être prêts attention à un développement frontal, y compris principalement les attaques XSS, la sécurité de l'interface et les risques de bibliothèque tiers. 1. Empêcher les XS: échapper à l'entrée de l'utilisateur, utiliser TextContent, en-tête CSP, vérification des entrées, éviter EVAL () et exécution directe de JSON; 2. Protégez l'interface: utilisez les politiques CSRFToken, SameSiteCookie, les limites de fréquence de demande et les informations sensibles pour crypter la transmission; 3.

HTML5, CSS et JavaScript doivent être combinés efficacement avec des balises sémantiques, un ordre de chargement raisonnable et une conception de découplage. 1. Utilisez des étiquettes sémantiques HTML5, telles que l'amélioration de la clarté structurelle et de la maintenabilité, qui est propice au référencement et à l'accès sans barrière; 2. CSS doit être placé, utiliser des fichiers externes et se séparer par module pour éviter les styles en ligne et les problèmes de chargement retardés; 3. JavaScript est recommandé d'être introduit à l'avant et d'utiliser un repère ou une asynchronisation pour charger de manière asynchrone pour éviter le blocage du rendu; 4. Réduisez une forte dépendance entre les trois, conduisez le comportement à travers les attributs de données * et l'état de contr?le du nom de classe et améliorez l'efficacité de la collaboration grace à des spécifications de nommage unifiées. Ces méthodes peuvent optimiser efficacement les performances des pages et collaborer avec les équipes.
