Effet original L'effet après avoir glissé Le code est le suivant Copier le codeLe code est le suivant : [code] <br>#div1, #div2<br>{float:left ; largeur : 100 px ; hauteur : 35 px ; marge : 10 px; >function allowDrop (ev)<br>{<br>ev.preventDefault();<br>}<br>function drag(ev)<br>{<br>ev.dataTransfer.setData("Texte",ev. target.id );<br>}<br>function drop(ev)<br>{<br>ev.preventDefault();<br>var data=ev.dataTransfer.getData("Text");<br> ev.target .appendChild(document.getElementById(data));<br>}<br></script><br></head><br><body><br><img src=" /i/ w3school_logo_black.gif" draggable="true" ondragstart="drag(event)" id="drag1" /><br><div id="div1" ondrop="drop(event)" ondragover=" allowDrop(event )"><br> </div><br><div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div><br>< ;/body><br></html><br><br><br>[/code]<br>Ça peut paraître un peu compliqué, mais on peut étudier les différentes parties du glisser-déposer événement séparément. </div> <br><br>Définir l'élément comme déplaçable<p> <strong>Tout d'abord, afin de rendre l'élément déplaçable, définissez l'attribut draggable sur true : </strong></p> <p><br><br></p> <div class="msgheader">Copiez le code <div class="right"><span style="CURSOR: pointer" onclick="copycode(getid('phpcode122'));"><u> Le code est le suivant :</u></span></div><img draggable="true" /></div> <div class="msgborder" id="phpcode122"> <br> <br> </div>Que faire glisser - ondragstart et setData()<p> <strong>Ensuite, précisez ce qui se passe lorsque l'élément est déplacé. </strong> </p>Dans l'exemple ci-dessus, l'attribut ondragstart appelle une fonction, drag(<p>event</p>), qui spécifie les données à faire glisser. <p> <em>La méthode dataTransfer.setData() définit le type de données et la valeur des données déplacées : </em></p> <p><br><br></p> <div class="msgheader">Copier le code<div class="right"><span style="CURSOR: pointer" onclick="copycode(getid('phpcode123'));"><u>Le le code est le suivant :</u></span></div>function drag(ev)</div>{<div class="msgborder" id="phpcode123">ev.dataTransfer.setData("Text",ev.target.id);<br>}<br> <br><br>Dans cet exemple, le type de données est "Texte" et la valeur est l'identifiant de l'élément déplaçable ("drag1"). <br> Où mettre </div> <br> - ondragover<p> <strong>L'événement ondragover spécifie où placer les données glissées. </strong> </p>Par défaut, les données/éléments ne peuvent pas être placés à l'intérieur d'autres éléments. Si nous devons autoriser le placement, nous devons empêcher la gestion par défaut de l'élément. <p> </p>Cela se fait en appelant la méthode <p>event</p>.preventDefault() de l'événement ondragover : <p><em></em><br><br></p> <div class="msgheader">Copier le code<div class="right"><span style="CURSOR: pointer" onclick="copycode(getid('phpcode124'));"><u>Le code est le suivant :</u></span></div>event.preventDefault()</div> <div class="msgborder" id="phpcode124"> <br> <br> </div> à placer - ondrop<p> <strong>Lorsque les données déplacées sont déposées, l'événement de dépôt se produit. </strong> </p>Dans l'exemple ci-dessus, l'attribut ondrop appelle une fonction, drop(<p>event</p>): <p><em></em><br><br></p> <div class="msgheader">Copier le code<div class="right"> <span style="CURSOR: pointer" onclick="copycode(getid('phpcode125'));"><u>Le code est le suivant :</u></span> </div>function drop(ev) </div>{ <div class="msgborder" id="phpcode125">ev.preventDefault(); "Texte "); <br>ev.target.appendChild(document.getElementById(data)); <br>} <br><br><br> <br><br> Explication du code : </div> <p>Appelez PreventDefault() pour éviter le traitement des données par défaut du navigateur (le comportement par défaut de l'événement drop est de l'ouvrir sous forme de lien) et obtenez les données glissées via la méthode dataTransfer.getData("Text"). Cette méthode renverra n'importe quel ensemble de données du même type dans la méthode setData(). Les données déplacées sont l'identifiant de l'élément déplacé ("drag1"). Ajoutez l'élément déplacé à l'élément placé (élément cible) <strong>.</strong></p>