


Comment gérer les fonctionnalités de glisser-déposer dans le HTML natif


✅ Rendre un élément dragable
<p> Pour rendre n'importe quel élément draggable, utilisez l'attributdraggable
:

<div draggable = "true"> glisser-moi! </div><p> Par défaut, les éléments de texte comme
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/175420296420819.jpeg" class="lazy" alt="Comment gérer les fonctionnalités de glisser-déposer dans le HTML natif" >
et <a>
sont dragables dans la plupart des navigateurs, mais pour d'autres éléments (comme <div>
, <p>
, etc.), vous devez explicitement définir draggable="true"
.? Configurer une zone de chute
<p> Tout élément peut agir comme une cible de chute. Vous devez écouter trois événements principaux:
-
dragover
- requis pour permettre la suppression (empêcher la valeur par défaut de permettre la chute) -
dragenter
- Facultatif, pour une rétroaction visuelle -
drop
- où vous gérez la logique de chute réelle
<div id = "drop-zone" ondragover = "allowdrop (event)" ondrop = "mandeledrop (event)"> Tomber ici </div><p> Et le javascript:
fonction perteddrop (event) { event.PreventDefault (); // crucial: permet une goutte } fonction handledrop (événement) { event.PreventDefault (); const data = event.datatransfer.getData ("texte / plaine"); event.target.innerhtml = "Dropped:" data; }
? ️ Gérer les événements de traînée
<p> Vous devrez configurerondragstart
pour définir les données qui sont glissées:<div draggable = "true" ondragstart = "event.datatransfer.setData ('text / plain', 'Hello World')"> Dragage-moi! </div><p> Ou en utilisant JavaScript (nettoyant pour plusieurs éléments):
document.getElementById ("drag-item"). addEventListener ("dragstart", fonction (e) { e.datatransfer.setData ("texte / plaine", "point 1"); });
<p> ? L'objetdataTransfer
contient les données traînées. UtilisezsetData(format, data)
pour les stocker.
? Exemple de travail complet
<! Doctype html> <html> <adal> <style> .Draggable { rembourrage: 10px; Contexte: # 007CBA; Couleur: blanc; marge: 10px; curseur: déplacer; } # drop-zone { Largeur: 200px; hauteur: 100px; Border: 2px en pointillé #ccc; rembourrage: 10px; marge: 20px 0; } </ style> </ head> <body> <div class = "draggable" draggable = "true" ondragstart = "event.datatransfer.setData ('text / plain', 'mon contenu gliscable')"> Traîner </div> <div id = "drop-zone" ondragover = "event.preventDefault ()" ondrop = "handledrop (événement)"> Tomber ici </div> <cript> fonction handledrop (événement) { event.PreventDefault (); const data = event.datatransfer.getData ("texte / plaine"); event.target.textContent = data; } </cript> </docy> </html>
? Notes clés
- Appelez toujours
preventDefault()
dansdragover
etdrop
- Sinon, la goutte ne fonctionnera pas. - Vous pouvez transférer différents types de données:
"text/plain"
,"text/uri-list"
, ou même des formats personnalisés. - Pour des cas d'utilisation plus complexes (comme la glissement de fichiers ou plusieurs éléments), vous développerez
dataTransfer
. - Les appareils Touch ont un support de traînée natif limité - considérez les bibliothèques pour la compatibilité mobile.
<p> Fondamentalement, la traînée et la chute de HTML natifs ne sont pas difficiles une fois que vous connaissez le flux de l'événement:
DragStart → Dragover → Drop .
Réglez simplement
draggable
, gérez dragstart
pour définir des données, autorisez dragover
et traitez la goutte.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 grâce à 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)

Le chargement paresseux natif est une fonction de navigateur intégrée qui permet le chargement paresseux des images en ajoutant un attribut chargé = "paresseux" à la balise. 1. Il ne nécessite pas de bibliothèques JavaScript ou tierces et est utilisée directement dans HTML; 2. Il convient aux images qui ne sont pas affichées sur le premier écran sous la page, les modules complémentaires de défilement de la galerie d'images et les grandes ressources d'image; 3. Il ne convient pas aux images avec premier écran ou affichage: aucun; 4. Lorsque vous l'utilisez, un espace réservé approprié doit être réglé pour éviter la gigue de mise en page; 5. Il devrait optimiser le chargement d'image réactif en combinaison avec les attributs SRCSET et tailles; 6. Les problèmes de compatibilité doivent être pris en compte. Certains anciens navigateurs ne le soutiennent pas. Ils peuvent être utilisés grâce à la détection des fonctionnalités et combinés avec des solutions JavaScript.

SRCSET et les tailles sont des propriétés clés pour l'implémentation HTML des images réactives. SRCSET fournit plusieurs sources d'image et leur densité de largeur ou de pixel, telles que 400W et 800W, et le navigateur sélectionne l'image appropriée en conséquence; Les tailles définissent la largeur d'affichage de l'image sous différentes largeurs d'écran, telles que (max-largeur: 600px) 100VW, 50VW, afin que le navigateur puisse correspondre plus précisément à la taille de l'image. Dans une utilisation réelle, vous devez préparer des images multi-taille, clairement nommées, concevoir la disposition conformément à la requête multimédia, et tester les performances de l'équipement pour éviter d'ignorer les tailles ou les erreurs unitaires, enregistrant ainsi la bande passante et améliorant les performances.

La principale différence est que TextArea prend en charge plusieurs lignes d'entrée de texte, tandis que InputText n'est disponible qu'en une seule ligne. 1. Utilisez InputType = "Text" pour être adapté à la saisie utilisateur courte et unique, telle que le nom d'utilisateur, l'adresse e-mail, etc., et peut définir MaxLength pour limiter le nombre de caractères. Le navigateur offre une fonction de remplissage automatique, ce qui facilite le style uniformément entre les navigateurs; 2. Utilisez TextArea pour les scénarios qui nécessitent plusieurs lignes d'entrée, telles que les boîtes de commentaires, les formulaires de rétroaction, les pauses et les paragraphes de ligne de support, et peuvent contrôler la taille via CSS ou désactiver la fonction de réglage. Les deux fonctionnalités du formulaire de support telles que les espaces réservées et les remplissages requis, mais TextArea définit la taille à travers les lignes et les cols, et l'entrée utilise l'attribut de taille.

Il s'agit d'un élément au niveau du bloc, utilisé pour diviser de grandes zones de contenu de bloc; Il s'agit d'un élément en ligne, adapté à l'emballage de petits segments de fragments de texte ou de contenu. Les différences spécifiques sont les suivantes: 1. Occuper exclusivement une ligne, une largeur et une hauteur, des marges intérieures et extérieures peuvent être définies, qui sont souvent utilisées dans des structures de mise en page telles que les en-têtes, les barres latérales, etc.; 2. N'enveloppez pas les lignes, n'occupez que la largeur du contenu et sont utilisés pour le contrôle du style local tel que la décoloration, le gras, etc.; 3. En termes de scénarios d'utilisation, il convient à l'organisation de mise en page et de structure de la zone globale, et est utilisé pour les ajustements de style à petite échelle qui n'affectent pas la disposition globale; 4. Lors de la nidification, il peut contenir des éléments et les éléments au niveau du bloc ne doivent pas être imbriqués à l'intérieur.

Pour obtenir un effet pop-up de base, vous devez suivre les étapes suivantes: 1. Structure: Utilisez HTML pour créer des boutons de déclenchement, une couche de masque et une zone de contenu contextuelle; 2. Style: Définissez la mise en page cachée par défaut, la mise en page centrée, l'arrière-plan du masque et les styles de bouton de fermeture via CSS; 3. Interaction: Utilisez JavaScript pour lier les événements de clic pour contrôler l'affichage et la masque de fenêtre contextuels et peuvent étendre la fonction de clôture de la clé ESC; 4. Optimisation: ajoutez l'animation CSS pour améliorer l'expérience utilisateur. L'ensemble du processus ne nécessite pas de bibliothèque tierce, ce qui convient pour réaliser rapidement des fonctions contextuelles de base.

Pour commencer rapidement avec HTML, il vous suffit de maîtriser quelques balises de base pour créer un squelette Web. 1. La structure de la page est essentielle et, qui est l'élément racine, contient des méta-informations et est la zone d'affichage du contenu. 2. Utilisez le titre. Plus le niveau est élevé, plus le nombre est petit. Utilisez des balises pour segmenter le texte pour éviter de sauter le niveau. 3. Le lien utilise des balises et correspond aux attributs HREF, et l'image utilise des balises et contient des attributs SRC et Alt. 4. La liste est divisée en listes non ordonnées et listes commandées. Chaque entrée est représentée et doit être imbriquée dans la liste. 5. Les débutants n'ont pas à forcer la mémorisation de toutes les balises. Il est plus efficace de les écrire et de les vérifier pendant que vous écrivez. Maître la structure, le texte, les liens, les images et les listes pour créer des pages Web de base.

Les travailleurs Web sont des threads indépendants en cours d'exécution dans l'arrière-plan du navigateur, utilisés pour effectuer des tâches longues sans bloquer l'interface utilisateur. Ils sont implémentés via des fichiers JavaScript et sont lancés par des scripts dans des pages HTML, mais une fois exécutés, ils sont séparés du thread principal. 1. Les travailleurs Web ne peuvent pas accéder directement au DOM pour garantir la stabilité de la page; 2. Ils réalisent une communication sécurisée avec le fil principal via PostMessage () et OnMessage; 3. Il convient au traitement des tâches à forte intensité de processeur telles que les images, l'informatique complexe, l'analyse des données; 4. Il prend en charge certaines API telles que Settimeout, Fetch et IndededDB; 5. Lorsque vous l'utilisez, vous devez faire attention aux difficultés de débogage, à l'utilisation de la mémoire, aux restrictions inter-domaines et à d'autres problèmes.

Shadowdom est une technologie utilisée dans la technologie des composants Web pour créer des sous-arbres DOM isolés. 1. Il permet la monture d'une structure DOM indépendante sur les éléments HTML ordinaires, avec ses propres styles et comportements, et n'affecte pas le document principal; 2. Créé via JavaScript, comme l'utilisation de la méthode attachshadow et la définition du mode à ouvrir; 3. Lorsqu'il est utilisé en combinaison avec HTML, il a trois caractéristiques principales: la structure claire, l'isolement de style et la projection de contenu (fente); 4. Les notes incluent le débogage complexe, le contrôle de la portée du style, les frais généraux de performances et les problèmes de compatibilité du cadre. En bref, Shadowdom fournit des capacités d'encapsulation natives pour construire des composants d'interface utilisateur réutilisables et non polluants.
