HTMLドラッグドラッグイベント

韦小宝
リリース: 2018-05-18 15:39:46
オリジナル
3388 人が閲覧しました

HTMLではイベント処理はjsで行われます。HTML、js、CSSは切り離せません。以下はjsでのドラッグアンドドロップイベントの処理例です。

ドラッグ イベントは 2 つの部分に分かれており、1 つはドラッグ ターゲット (つまり、ドラッグ ターゲット) の処理であり、もう 1 つはドラッグされたターゲット (つまり、リリース ターゲット) の処理です。

ドラッグ ターゲット (ソース要素) でイベントをトリガーします:

ondragstart - ユーザーが要素のドラッグを開始するとトリガーされます

ondrag - 要素がドラッグされているときにトリガーされます

ondragend - ユーザーがドラッグを完​​了した後トリガー要素

ターゲットを解放するときにトリガーされるイベント:

ondragenter - このイベントは、マウスでドラッグされたオブジェクトがそのコンテナーのスコープに入ったときにトリガーされます

Ondragover - ドラッグされたオブジェクトが別のオブジェクトのコンテナー スコープ内にある場合object このイベントは、ドラッグ時にトリガーされます

ondragleave - このイベントは、マウスでドラッグされたオブジェクトがコンテナーのスコープから離れるとトリガーされます

ondrop - このイベントは、ドラッグプロセス中にマウスボタンが放されたときにトリガーされます

実装コードは次のとおりです: box1 とリストは相互にドラッグできます

<!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>
ログイン後にコピー

その中で: getElementsByTagName() メソッドは、指定されたタグ名を持つオブジェクトのコレクションを返すことができます。

e.preventDefault(); は、システムのデフォルトのドラッグ イベントを防止します。

appendChild() は、指定されたコントロールにコントロールを追加します。

e.preventDefault();
ログイン後にコピー

以上がHTMLドラッグイベントの内容です。皆様のお役に立てれば幸いです。

関連する推奨事項:

JS と html を使用して簡単なスケッチパッド コードを作成する

DOM オブジェクトを操作する Js プロセス

html js 関連の質問

以上がHTMLドラッグドラッグイベントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!