


Tutoriel avancé HTML5 - API glisser-déposer pour implémenter le tri par glisser-déposer
Avant-propos
HTML5 fournit une API par glisser-déposer direct, qui est super Il est pratique pour nous de réaliser l'effet glisser-déposer. Nous n'avons pas besoin d'écrire beaucoup de js. Nous pouvons réaliser diverses fonctions glisser-déposer en écoutant simplement l'événement glisser-déposer du. élément.
Si vous souhaitez glisser et déposer un élément, vous devez définir l'attribut draggable de l'élément sur true. Lorsque l'attribut est faux, le glisser-déposer ne sera pas autorisé. L'élément img et l'élément a ont tous deux l'attribut draggable défini sur true par défaut, ils peuvent donc être glissés et déposés directement. Si vous ne souhaitez pas glisser-déposer ces deux éléments, définissez simplement l'attribut sur false. Événements glisser-déposerLes événements glisser-déposer sont générés par différents éléments. Lorsqu'un élément est glissé et déposé, il peut traverser de nombreux éléments avant d'atteindre finalement l'élément que vous souhaitez placer. Ici, j'appelle temporairement l'élément glissé l'objet source, l'élément passé l'objet de processus et l'élément arrivé l'objet cible. Différents objets génèrent différents événements de glisser-déposer. Objet source :- dragstart : L'objet source commence à glisser-déposer.
- glisser : pendant le processus de glisser-déposer de l'objet source.
- dragend : Le glisser-déposer de l'objet source se termine. Objet processus :
- dragenter : L'objet source commence à entrer dans la portée de l'objet processus.
- dragover : L'objet source se déplace dans la portée de l'objet processus.
- dragleave : L'objet source quitte la portée de l'objet processus. Objet cible :
- drop : L'objet source est glissé et déposé dans l'objet cible.
- text/plain : texte texte.
- text/html : texte HTML.
- text/
xml : texte XML.
- text/uri-list : liste d'URL, chaque URL est une ligne. Le deuxième paramètre est les données à stocker. Par exemple :
- Dans une liste, chaque élément peut être glissé et déposé. Ensuite, vous devez d'abord définir l'attribut draggable sur true pour chaque élément.
- Écoutez l'événement dragstart de chaque élément et stylisez l'objet source pour le distinguer.
- Écoutez l'événement dragenter de chaque élément. Lorsque l'objet source entre dans l'élément actuel, ajoutez l'objet source avant l'élément. De cette façon, les éléments suivants seront éliminés par l'objet source, obtenant ainsi un effet de tri.
- Mais vous constaterez que l'objet source ne peut pas être classé en dernier, mais ne peut être classé qu'en avant-dernier. À ce stade, vous devez écouter l'événement dragleave. Lorsque l'objet de processus est le dernier élément, l'objet source quitte l'objet de processus, puis l'objet source est ajouté à la fin. Le code principal est le suivant :
<p id="source" draggable="true">a元素</p> <p id="process">b元素</p> <p id="target">c元素</p> <script> var source = document.getElementById('source'), // a元素 process = document.getElementById('process'), // b元素 target = document.getElementById('target'); // c元素 source.addEventListener('dragstart',function(ev){ // dragstart事件由a元素产生 console.log('a元素开始被拖动'); },false) process.addEventListener('dragenter',function(ev){ // dragenter事件由b元素产生 console.log('a元素开始进入b元素'); },false) process.addEventListener('dragleave',function(ev){ // dragleave事件由b元素产生 console.log('a元素离开b元素'); },false) target.addEventListener('drop',function(ev){ // drop事件由c元素产生 console.log('a元素拖放到c元素了'); ev.preventDefault(); },false) document.ondragover = function(e){e.preventDefault();} </script>
event.dataTransfer.setData('text/plain','Hello World');
event.dataTransfer.getData('text/plain');
clearData()
Cette méthode efface les données stockées dans l'objet dataTransfer. Le paramètre est facultatif et correspond au type de données. Si le paramètre est vide, tous les types de données seront effacés. Par exemple :event.dataTransfer.clearData();
var source = document.getElementById('source'), icon = document.createElement('img'); icon.src = 'img.png'; source.addEventListener('dragstart',function(ev){ ev.dataTransfer.setDragImage(icon,-10,-10) },false)
var source = document.querySelectorAll('.list'), dragElement = null; for(var i = 0; i < source.length; i++){ source[i].addEventListener('dragstart',function(ev){ dragElement = this; },false); source[i].addEventListener('dragenter', function(ev){ if(dragElement != this){ this.parentNode.insertBefore(dragElement,this); } }, false) source[i].addEventListener('dragleave', function(ev){ if(dragElement != this){ if(this == this.parentNode.lastElementChild || this == this.parentNode.lastChild){ this.parentNode.appendChild(dragElement); } } }, false) }; document.ondragover = function(e){e.preventDefault();} document.ondrop = function(e){e.preventDefault();}
hauteur dans IE, l'événement dragleave ne sera pas déclenché.
Le point le plus important est qu'ils sont totalement incompatibles sur iOS et Android. Heureusement, il existe un plug-in qui le rend parfaitement compatible avec les appareils mobiles.Adresse du plug-in : ios-html5-drag-drop-shim
<script> var iosDragDropShim = { enableEnterLeave: true } </script> <script src="vendor/ios-drag-drop.js"></script>
Tutoriel vidéo en ligne h5 gratuit
2. Manuel de la version complète HTML5
3 Tutoriel vidéo HTML5 original php.cn
.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

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.

Undress AI Tool
Images de déshabillage gratuites

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)

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.

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.

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.

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.

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.

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.

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.

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.
