ホームページ  >  記事  >  ウェブフロントエンド  >  H5 でドラッグ効果を作成する方法

H5 でドラッグ効果を作成する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-01-09 10:38:034621ブラウズ

今回は、H5 でドラッグ エフェクトを作成する方法と、H5 でドラッグ エフェクトを作成するための 注意事項 を​​説明します。実際のケースを見てみましょう。

ドラッグ関連の属性

ドラッグ可能な属性は、HTML5 がドラッグ アンド ドロップ操作をサポートする方法の 1 つであり、要素をドラッグ アンド ドロップできるかどうかを示すために使用されます。 draggable には 3 つの値があり、true はドラッグ アンド ドロップできることを意味し、false はドラッグ アンド ドロップできないことを意味し、auto はブラウザのデフォルト値を使用することを意味します

<ul>     
    <li id="item1" draggable="true">列表1</li>  
    <li id="item2" draggable="true">列表2</li>  
    <li id="item3" draggable="true">列表3</li>  
    <li id="item4" draggable="true">列表4</li>  
    <li id="item5" draggable="true">列表5</li>  
    <li id="item6" draggable="true">列表6</li>  
</ul>
ドラッグ関連イベント

ondragstart: このイベントは、ユーザーが操作したときにトリガーされます。要素のドラッグまたはテキストの選択を開始します ondrag: 要素がドラッグされているときに ondragend がトリガーされます。 ondragleave: マウスによってドラッグされているオブジェクトがコンテナー スコープを離れるときにトリガーされます。 ondragover: ドラッグされたときにトリガーされます。オブジェクトが別のオブジェクトのコンテナのスコープ内でドラッグされると、このイベントがターゲット要素で発生します。このイベントは、ターゲット要素

dataTransfer オブジェクト関連のメソッド

setData(format) に作用します。 ,data): カスタム データ形式を追加します。 getData(format): カスタム データ形式を取得します。clearData([format]): カスタム データ形式とデータをクリアします

Event.preventDefault()

このメソッドは、デフォルトの動作です。 PreventDefault() は ondragover で実行する必要があります。そうでない場合、ondrop イベントはトリガーされません

<!DOCTYPE html>     
<html>     
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <style type="text/css">  
            .main{   
                width: 800px;   
                /*border: 1px solid #ccc;*/   
                height: 400px;   
                margin:0 auto;   
            }   
            .left{   
                float: left;   
                width: 25%;   
                background-color: #666;   
                height: 370px;   
                text-align: center;   
                color: black;   
                padding-top:30px ;   
                font-size: 110px;   
            }   
            .right{   
                float: right;   
                width: 69%;   
            }   
            .right ul,.right li{   
               margin: 0;   
               padding: 0;   
            }   
            .right li{   
                list-style: none;   
                border: 2px dashed  #666;   
                background-color: #ddd;   
                height: 60px;   
                margin-top: 3px;   
                text-indent: 30px;   
                line-height: 60px;   
            }   
            .right li:hover{   
                background-color: #ccc;   
            }   
            #message{   
  
                width: 800px;   
                text-align: center;   
                border: 1px solid black;   
                margin: 20px auto;   
                font-size:28px;   
            }   
        </style>  
        <script type="text/javascript">  
            window.onload = function(){   
                var aLi = document.getElementsByTagName(&#39;li&#39;);   
                var oLeft = document.getElementsByClassName(&#39;left&#39;)[0];   
                var oMessage = document.getElementById(&#39;message&#39;);   
  
                for(var i=0;i<aLi.length;i++){   
                    aLi[i].index = i+1;   
                    aLi[i].ondragstart = function(ev){   
                                                //事件对象ev   
                        var evev = ev || event;   
  
                        ev.dataTransfer.setData("Text",this.id);   
                    }   
  
                }   
                oLeft.ondrop = function(ev){   
  
                    var evev = ev || event;   
                    var data = ev.dataTransfer.getData("Text");   
                    var num = document.getElementById(data).index;   
                     document.getElementById(data).remove();   
  
                    oMessage.innerHTML = "列表"+num+"被放进了垃圾箱";   
  
                    this.style.color = "black";   
  
                    }   
                oLeft.ondragover = function(ev){   
                    var evev = ev || event;   
                    ev.preventDefault();   
                }   
                oLeft.ondragenter = function(){   
                    this.style.color = "#fff";   
                }   
            }   
        </script>  
    </head>  
    <body>  
        <div class="main">  
            <div class="left">垃圾箱</div>  
            <div class="right">  
                <ul>  
                    <li id="item1" draggable="true">列表1</li>  
                    <li id="item2" draggable="true">列表2</li>  
                    <li id="item3" draggable="true">列表3</li>  
                    <li id="item4" draggable="true">列表4</li>  
                    <li id="item5" draggable="true">列表5</li>  
                    <li id="item6" draggable="true">列表6</li>  
                </ul>  
            </div>  
            <div style="clear: both;"></div>  
  
  
        </div>  
        <div id="message">拖到垃圾箱删除列表</div>  
    </body>  
</html>

これらのケースを読んだ後は、メソッドを習得したと思います。さらに興味深い情報については、PHP 中国語に関する他の関連記事に注目してください。 Webサイト!

関連記事:

ブートストラップでテーブルの合計数を数える方法

JSを使用してアイコンの非表示と表示を同時に切り替える方法

vue.js todolistの実装方法

以上がH5 でドラッグ効果を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。