婷婷久久综合九色综合,欧美成色婷婷在线观看视频,偷窥视频一区,欧美日本一道道一区二区

<tt id="bu9ss"></tt>
  • <span id="bu9ss"></span>
  • <pre id="bu9ss"><tt id="bu9ss"></tt></pre>
    <label id="bu9ss"></label>

    當前位置:首頁 >  站長 >  編程技術 >  正文

    Html5原生拖拽相關事件簡介以及基礎實現(xiàn)

     2020-12-02 10:37  來源: 腳本之家   我來投稿 撤稿糾錯

      阿里云優(yōu)惠券 先領券再下單

    這篇文章主要介紹了Html5原生拖拽相關事件簡介以及基礎實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

    公司項目需求,要實現(xiàn)任務卡片在不同任務列表之間進行拖拽實現(xiàn)任務類別的更改。于是找了一下相關文章,稍微學習了一下。實現(xiàn)效果如下圖。

    拖拽實現(xiàn)

    主要用到的是H5自帶的拖拽效果。其實項目前端部分是使用React編寫的,也是在使用H5實現(xiàn)了之后才了解到Dan Abramov大佬有個React-DnD組件對原生拖拽方法進行了封裝。稍微學習了一下,很強。后續(xù)有使用到再寫篇文章進行分享。

    相關事件定義與用法

    涉及一個屬性六個事件。事件均為H5原生事件。

    屬性

    draggable:正常div是不允許進行拖動的。需要添加屬性draggable="true"將元素設置為可拖動。

    事件

    ondragstart:拖拽元素事件。在被拖拽時被調(diào)用。

    ondrag:拖拽元素事件。在元素正在被拖拽時調(diào)用。

    ondragend:拖拽元素事件。在拖拽元素放置時調(diào)用。

    ondragenter:放置元素事件。在拖拽元素進入到放置元素有效區(qū)域時調(diào)用。

    ondragover:放置元素事件。在拖拽元素覆蓋放置元素有效區(qū)域時調(diào)用

    ondragleave:放置元素事件。在拖拽元素離開放置元素有效區(qū)域時調(diào)用。

    ondrop:放置元素事件。在拖拽元素被放置在放置元素中調(diào)用。

    基礎代碼實現(xiàn)

    拖拽元素相關事件實現(xiàn)代碼如下。

    function handleOndragstart() {
    /*
    該事件為拖拽元素被拖拽時調(diào)用。一般用于獲取該拖拽元素的唯一標識,如id等。以方便后續(xù)數(shù)據(jù)更新時進行元素定位
    */
    }

    function handleOndragend() {
    /*
    該事件在拖拽元素被放置時調(diào)用。一般用于重置變量操作
    */
    }

    function handleOndrag() {
    /*
    該事件憑個人需求進行功能實現(xiàn)
    */
    }

    拖拽元素H5代碼如下

    <div
    draggable="true"
    ondragstart="handleOndragstart()"
    ondrag="handleOndarg()"
    ondragend="handleOndragend()"
    >
    該元素為拖拽元素
    </div>

    放置元素相關事件實現(xiàn)代碼如下

    /*
    默認情況下,數(shù)據(jù)/元素不能放置到其他元素中。 如果要實現(xiàn)該功能,我們需要防止元素的默認處理方法。我們可以通過調(diào)用 event.preventDefault() 方法來實現(xiàn) ondragover 事件。
    */
    function handleOndragover(event) {
    event.preventDefault();
    /*
    在這里進行你的函數(shù)處理
    */
    }

    function handleOndragenter(event) {
    event.preventDefault();
    /*
    在這里進行你的函數(shù)處理
    */
    }

    function handleOndragleave(event) {
    event.preventDefault();
    /*
    在這里進行你的函數(shù)處理
    */
    }

    function handleOndrop(event) {
    event.preventDefault(); // 清除默認事件。drop 事件的默認行為是以鏈接形式打開
    /*
    一般在該事件中,也就是拖拽元素被放下的時候與后端進行交互進行數(shù)據(jù)更新
    */

    放置元素H5代碼如下

    <div
    ondragenter="handleOndragenter(event)"
    ondragover="handleOndragover(event)"
    ondragleave="handleOndragleave(event)"
    ondrop=“handleOndrop(event)
    >
    該元素為放置元素
    </div>

    實例

    以下代碼可實現(xiàn)在兩個div之間進行子元素的拖拽

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>拖拽實現(xiàn)</title>
    <style type="text/css">
    .parent {
    display: flex;
    width: 450px;
    justify-content: space-around;
    }
    .container {
    height: 300px;
    width: 200px;
    background-color: rgba(255, 255, 0, 0.3);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    }
    .box {
    width: 100px;
    height: 50px;
    background-color: rgba(255, 255, 255, 1);
    }
    </style>
    <script type="text/javascript">
    function handleOndragstart(event) {
    // 設置被拖動的數(shù)據(jù),可簡單理解為設置Box的值為被拖動元素的id。此處為"Box"
    event.dataTransfer.setData("Box", event.target.id);
    }
    function handleOndragover(event) {
    event.preventDefault();
    }
    function handleOndrop(event) {
    // 拖拽元素被放下時調(diào)用
    event.preventDefault();
    var data = event.dataTransfer.getData("Box");
    // 將拖拽元素追加到改放置元素中
    event.target.appendChild(document.getElementById(data));
    }
    </script>
    </head>

    <body>
    <div class="parent">
    <div
    class="container"
    ondragover="handleOndragover(event)"
    ondrop="handleOndrop(event)"
    >
    <div
    class="box"
    draggable="true"
    id="Box"
    ondragstart="handleOndragstart(event)"
    ></div>
    </div>
    <div
    class="container"
    ondragover="handleOndragover(event)"
    ondrop="handleOndrop(event)"
    ></div>
    </div>
    </body>
    </html>

    最后

    暫時寫這么多吧。以上的實例也是用H5寫的,并沒有使用React實現(xiàn)。以后再試著寫個React版的簡單demo吧。這應該也算是我的第一篇分享文章,希望能堅持下去。

    參考鏈接:

    https://www.jb51.net/article/154105.htm

    https://www.runoob.com/try/try.php?filename=tryhtml5_draganddrop2

    到此這篇關于Html5原生拖拽相關事件簡介以及基礎實現(xiàn)的文章就介紹到這了,更多相關Html5原生拖拽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

    來源:腳本之家

    鏈接:https://www.jb51.net/html5/752965.html

    申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

    相關文章

    • Html5移動端div固定到底部實現(xiàn)底部導航條的幾種方式

      這篇文章主要介紹了Html5移動端div固定到底部實現(xiàn)底部導航條的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

      標簽:
      html5
    • HTML5拖拽文件上傳的示例代碼

      這篇文章主要介紹了HTML5拖拽文件上傳的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

      標簽:
      html5
    • HTML5 層的疊加的實現(xiàn)

      這篇文章主要介紹了HTML5層的疊加的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

      標簽:
      html5
    • HTML5 背景的顯示區(qū)域?qū)崿F(xiàn)

      這篇文章主要介紹了HTML5背景的顯示區(qū)域?qū)崿F(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

      標簽:
      html5
    • html5關于外鏈嵌入頁面通信問題

      這篇文章主要介紹了html5關于外鏈嵌入頁面通信問題(postMessage解決跨域通信),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

      標簽:
      html5

    熱門排行

    信息推薦