溫馨提示×

溫馨提示×

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

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

html5拖拽應用記錄及注意點有哪些

發布時間:2021-05-14 10:31:39 來源:億速云 閱讀:170 作者:小新 欄目:web開發

這篇文章主要介紹了html5拖拽應用記錄及注意點有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體代碼如下所示:

e.dataTransfer.setData("a","設置的值");
e.dataTransfer.getData("a");
function drop(e)
{
    <!--嘗試console.log(e),這里能拿到好多你用得到的api-->
    e.dataTransfer.setData("a", e.target.id);
}

拖動元素

被拖動的元素上要加入入draggable="true"屬性

一些注意點:

drop 必須配上 dragover,否則事件不生效

 

document.getElementById('right').ondragover = function (ev) {
    ev.preventDefault(); //阻止向上冒泡
}
document.getElementById('right').ondrop = function (ev) {
    ev.preventDefault(); //阻止向上冒泡
    console.log("放入");
}

react中使用事件必須是駝峰,例如:onDragOver

vue中在ui庫組件上加的時候記得加 .native,例如:@drop.native

完整測試案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .div1{
            width: 200px;
            height: 200px;
            border: 1px solid red;
            position: relative;
            margin-left:20px;
            float: left;
        }
        .div2{
            width: 200px;
            height: 200px;
            border: 1px solid blue;
            position: relative;
            margin-left:20px;
            float: left;
        }
        .div3{
            width: 200px;
            height: 200px;
            border: 1px solid green;
            position: relative;
            margin-left:20px;
            float: left;
        }
        p{
            background-color: orange;
            margin-top: 5px;
        }
    </style>
</head>
<body>
<div class="div1" id="div1">
    <!--在h6中,如果想拖拽元素,就必須為元素添加draggable="true". 圖片和超鏈接默認就可以拖拽-->
    <p id="pe" draggable="true">試著把我拖過去</p>
    <p id="pe1" draggable="true">試著也把我拖過去</p>
</div>
<div class="div2" id="div2"></div>
<div class="div3" id="div3"></div>
<script>
    /*學習拖拽,主要就是學習拖拽事件*/
    var p=document.querySelector("#pe1");
    var div2=document.querySelector("#div2");
    var div3=document.querySelector("#div3");
    /*應用于被拖拽元素的事件
    *ondrag         應用于拖拽元素,整個拖拽過程都會調用--持續
     ondragstart    應用于拖拽元素,當拖拽開始時調用
     ondragleave    應用于拖拽元素,當鼠標離開拖拽元素時調用
     ondragend    應用于拖拽元素,當拖拽結束時調用*/
    p.ondragstart=function(e){
        console.log("開始");
        e.dataTransfer.setDate("a")
    }
    p.ondragend=function(){
        console.log("結束");
    }
    p.ondragleave=function(){
        console.log("離開目標");
    }
    p.ondrag=function(){
        // console.log("持續觸發---111111");
    }
 
    /*應用于目標元素的事件
    *ondragenter    應用于目標元素,當拖拽元素進入時調用
     ondragover    應用于目標元素,當停留在目標元素上時調用
     ondrop        應用于目標元素,當在目標元素上松開鼠標時調用
     ondragleave    應用于目標元素,當鼠標離開目標元素時調用*/
    div2.ondragenter=function(){
        console.log("進入目標1");
    }
    div2.ondragover=function(e){
        console.log(e);
        console.log("在目標1中盤旋");
        //console.log("ondragover");
        /*如果想觸發ondrop事件,那么就必須在這個位置阻止瀏覽器的默認行為*/
        e.preventDefault();
    }
    /*瀏覽器默認會阻止ondrop事件:我們必須在ondragover中阻止瀏覽器的默認行為*/
    div2.ondrop=function(){
        console.log("鎖定目標1,降落");
        /*添加被拖拽的元素到當前目標元素*/
        div2.appendChild(p);
    }
    div2.ondragleave=function(){
        console.log("離開目標1");
    }

    div3.ondragenter=function(){
        console.log("進入目標2");
    }
 
    div3.ondragover=function(e){
        console.log("在目標2中盤旋");
        //console.log("ondragover");
        /*如果想觸發ondrop事件,那么就必須在這個位置阻止瀏覽器的默認行為*/
        e.preventDefault();
    }
    div3.ondrop=function(){
        console.log("鎖定目標2,降落");
        /*添加被拖拽的元素到當前目標元素*/
        div3.appendChild(p);
    }
    div3.ondragleave=function(){
        console.log("離開目標2");
    }
</script>
</body>
</html>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“html5拖拽應用記錄及注意點有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女