Maison interface Web js tutoriel Explication détaillée des techniques permettant d'implémenter facilement la fonction glisser en JavaScript HTML5

Explication détaillée des techniques permettant d'implémenter facilement la fonction glisser en JavaScript HTML5

Mar 24, 2017 pm 03:08 PM

Cet article présente principalement en détail javascript html5 pour implémenter facilement la fonction glisser, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Faites glisser et. drop (glisser-déposer) sont des composants standard de HTML5. Ci-dessous, nous le décrivons sous cinq aspects, à savoir comment devenir un objet de glisser, comment devenir une cible de glisser et les événements sur l'objet glissé , les événements appartenant à la cible du glisser et comment transférer des informations entre les objets glisser-déposer.

Événements appartenant à l'objet déplacé

  • dragstart (déclenché lorsque l'objet est simplement déplacé)

  • drag (déclenché après le déclenchement de l'événement dragstart)

  • dragend (déclenché à la fin de l'événement drag)

Événements appartenant à la cible de déplacement

  • dragenter (déclenché lorsque l'élément glissé entre dans la cible de dépôt)

  • dragover (déclenché lorsque l'élément glissé est déplacé dans la cible de dépôt, similaire au survol de la souris)

  • drop (déclenché lorsque l'élément glissé est placé dans la cible de dépôt)

Comment devenir un objet déplaçable

En HTML, l'élément img peut être déplacé par défaut et les autres éléments doivent être définis comme déplaçables =true. Vous pouvez le faire glisser.

<p draggable="true"></p>
Copier après la connexion

Comment devenir une cible de déplacement

En HTML, les éléments ne peuvent pas devenir des cibles de dépôt par défaut, seulement nous désactivons le comportement par défaut de drapenter et événements drapover , cela peut être appelé une cible de glisser-déposer.

droptarget.addEventListener(&#39;dragenter&#39;, function(event) {
  event.preventDefault();
});
droptarget.addEventListener(&#39;dragover&#39;, function(event) {
  event.preventDefault();
});
Copier après la connexion

Comment transférer des informations entre des objets glisser-déposer

Il existe un dataTransferobjet dans l'événement, qui a deux méthodes courantes setData() et getData() sont utilisés respectivement pour stocker des informations de glisser-déposer et obtenir des informations de glisser-déposer. Parmi eux, setData() ne peut être défini qu'au début de l'événement glisser, c'est-à-dire lorsque l'événement dragstart est défini, et getData() est généralement obtenu lorsque l'événement drop est déclenché.

// drapobj 拖拽元素
// droptarget 放置目标
dragobj.addEventListener(&#39;dragstart&#39;, function(event) {
  event.dataTransfer.setData(&#39;id&#39;, dragobj.id);
});
droptarget.addEventListener(&#39;drop&#39;, function(event) {
  var id = event.dataTransfer.getData(&#39;id&#39;);
  var obj = document.getElementById(id);
  event.preventDefault();
  this.appendChild(obj);
});
Copier après la connexion

Code complet





  
  HTML5 拖拽



  <p draggable="true"></p>
  

<script> var droptarget = document.getElementById(&#39;droptarget&#39;); var dragobj = document.getElementById(&#39;dragobj&#39;); // drapobj 拖拽元素 // droptarget 放置目标 dragobj.addEventListener(&#39;dragstart&#39;, function(event) { event.dataTransfer.setData(&#39;id&#39;, dragobj.id); }); droptarget.addEventListener(&amp;#39;dragenter&amp;#39;, function(event) { event.preventDefault(); }); droptarget.addEventListener(&amp;#39;dragover&amp;#39;, function(event) { event.preventDefault(); }); droptarget.addEventListener(&#39;drop&#39;, function(event) { var id = event.dataTransfer.getData(&#39;id&#39;); var obj = document.getElementById(id); event.preventDefault(); this.appendChild(obj); }); </script>
Copier après la connexion

Il y a un problème

Navigateur Firefox Faire glisser une image ouvre une nouvelle fenêtre par défaut. Selon la programmation avancée JavaScript, l'événement par défaut est désactivé dans l'événement drop, ce qui ne résout pas le problème.

Solution : Si vous utilisez l'image comme image d'arrière-plan de p et p comme objet de déplacement, ce problème n'existera pas.

Code final





  
  HTML5 拖拽
  



  

<script> var droptarget = document.getElementById(&#39;droptarget&#39;); var dragobj = document.getElementById(&#39;dragobj&#39;); // drapobj 拖拽元素 // droptarget 放置目标 dragobj.addEventListener(&#39;dragstart&#39;, function(event) { event.dataTransfer.setData(&#39;id&#39;, dragobj.id); }); droptarget.addEventListener(&amp;#39;dragenter&amp;#39;, function(event) { event.preventDefault(); }); droptarget.addEventListener(&amp;#39;dragover&amp;#39;, function(event) { event.preventDefault(); }); droptarget.addEventListener(&#39;drop&#39;, function(event) { var id = event.dataTransfer.getData(&#39;id&#39;); var obj = document.getElementById(id); event.preventDefault(); this.appendChild(obj); }); </script>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Bordure de tableau en HTML Bordure de tableau en HTML Sep 04, 2024 pm 04:49 PM

Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Tableau imbriqué en HTML Tableau imbriqué en HTML Sep 04, 2024 pm 04:49 PM

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Marge gauche HTML Marge gauche HTML Sep 04, 2024 pm 04:48 PM

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Disposition du tableau HTML Disposition du tableau HTML Sep 04, 2024 pm 04:54 PM

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Espace réservé d'entrée HTML Espace réservé d'entrée HTML Sep 04, 2024 pm 04:54 PM

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Déplacer du texte en HTML Déplacer du texte en HTML Sep 04, 2024 pm 04:45 PM

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Liste ordonnée HTML Liste ordonnée HTML Sep 04, 2024 pm 04:43 PM

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

Bouton HTML onclick Bouton HTML onclick Sep 04, 2024 pm 04:49 PM

Guide du bouton HTML onclick. Nous discutons ici de leur introduction, de leur fonctionnement, des exemples et de l'événement onclick dans divers événements respectivement.

See all articles