Maison  >  Article  >  interface Web  >  événement glisser-glisser html

événement glisser-glisser html

韦小宝
韦小宝original
2018-05-18 15:39:463431parcourir

En HTML, le traitement des événements s'effectue en js HTML, js et css sont indissociables. Ce qui suit est un exemple de gestion des événements glisser-déposer dans js.

L'événement glisser est divisé en deux parties, l'une est le traitement de la cible du glisser (c'est-à-dire la cible du glisser) ; .

Événement déclencheur sur la cible du glisser (élément source) :

ondragstart - déclenché lorsque l'utilisateur commence à faire glisser l'élément

ondrag - déclenché lorsque l'élément est déplacé

ondragend - déclenché une fois que l'utilisateur a fini de faire glisser l'élément

Événement déclenché lorsque la cible est relâchée :

ondragover - Cet événement est déclenché lorsque l'objet déplacé par la souris entre dans son conteneur

ondragover - Cet événement est déclenché lorsqu'un objet déplacé est glissé dans le conteneur d'un autre objet

ondragleave - Cet événement est déclenché lorsque l'objet déplacé par la souris quitte la portée de son conteneur

ondrop - Cet événement est déclenché lorsque le bouton de la souris est relâché lors d'un processus de glissement

Le code d'implémentation est le suivant : la box1 et les listes peuvent être glissées les unes vers les autres

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #box1{width: 200px;height: 250px;border:2px solid red;}
        #lists{ width:200px; height:250px; list-style: none;padding: 0;margin: 10px 0px; border:2px solid blue;}
        li{width: 150px;height: 30px; margin: 5px 0; padding:0;background: #ccc; line-height:30px;text-align: center ;}
    </style>
    <script>
        window.onload=function () {
            var box1=document.getElementById("box1");
            var lists=document.getElementById("lists");
            var lis=document.getElementsByTagName("li");
            for(var i=0;i<lis.length;i++){
                lis[i].draggable=true;
                lis[i].flag=false;
                //1、拖拽开始
                lis[i].ondragstart=function () {
                    this.flag=true;
                }
                //2、拖拽移动
                 two.ondrag=function () {

                }
                //3、拖拽结束
                lis[i].ondragend=function () {
                    this.flag=false;
                }
            }
            //投放区事件
            //1、进入投放区
            box1.ondragenter=function (e) {
                e.preventDefault();
            }
            //2、在投放区内移动
            box1.ondragover=function (e) {
                e.preventDefault();
            }
            //3、离开投放区
            box1.ondragleave=function (e) {
                e.preventDefault();
            }
            //4、完成投放 此时可以在投放区内做处理
            box1.ondrop=function (e) {
                e.preventDefault();
                for(var i=0;i<lis.length;i++){
                    if(lis[i].flag){
                        box1.appendChild(lis[i]);
                    }
                }
            }

            lists.ondragenter=function (e) {
                e.preventDefault();
            }
            lists.ondragover=function (e) {
                e.preventDefault();
            }
            lists.ondragleave=function (e) {
                e.preventDefault();
            }
            lists.ondrop=function (e) {
                e.preventDefault();
                for(var i=0;i<lis.length;i++){
                    if(lis[i].flag){
                        lists.appendChild(lis[i]);
                    }
                }
            }
        }
    </script>
</head>
<body>
    <p id="box1"></p>
    <ul id="lists">
        <li>数据1</li>
        <li>数据2</li>
        <li>数据3</li>
        <li>数据4</li>
        <li>数据5</li>
        <li>数据6</li>
    </ul>
</body>
</html>

Parmi eux : la méthode getElementsByTagName() renvoie une collection d'objets avec le nom de balise spécifié.

e.preventDefault(); sert à empêcher l'événement de glissement par défaut du système.

appendChild() ajoute un contrôle au contrôle spécifié.

e.preventDefault();

Ce qui précède est tout le contenu de l'événement drag html, j'espère que cela sera utile à tout le monde.

Recommandations associées :

Utilisez JS et HTML pour créer un simple code de carnet de croquis

Processus Js d'exploitation des objets DOM

Problèmes liés à HTML JS

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:
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