溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

H5做出拖拽效果的方法

發(fā)布時間:2020-09-23 14:09:26 來源:億速云 閱讀:177 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細講解有關(guān)H5做出拖拽效果的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

拖拽相關(guān)屬性

draggable屬性是html5的全局屬性,是html5支持拖放操作的方式之一,用來表示元素是否可以被拖放,draggable有三個值,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>

拖拽相關(guān)的事件

ondragstart:此事件在用戶開始拖動元素或選擇文本時觸發(fā) ondrag:元素正在拖動時觸發(fā) ondragend:用戶完成元素拖放時觸發(fā) ondragleave:當(dāng)被鼠標(biāo)拖動的對象離開其容器范圍時觸發(fā) ondragover:當(dāng)某個被拖動的對象在另一對象容器范圍內(nèi)拖動時觸發(fā)此事件,此事件發(fā)生在目標(biāo)元素身上 ondrop:在一個拖動過程中,釋放鼠標(biāo)時觸發(fā),此事件作用在目標(biāo)元素身上

dataTransfer 對象相關(guān)方法

setData(format,data):添加自定義數(shù)據(jù)格式 getData(format):獲取自定義的數(shù)據(jù)格式clearData([format]):清除自定義的數(shù)據(jù)格式及數(shù)據(jù)

Event.preventDefault()

此方法是阻止事件的默認行為,在ondragover中一定要執(zhí)行preventDefault(),否則ondrop事件不會被觸發(fā)

<!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('li');   
                var oLeft = document.getElementsByClassName('left')[0];   
                var oMessage = document.getElementById('message');   
  
                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>

關(guān)于H5做出拖拽效果的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI