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

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

    當(dāng)前位置:首頁(yè) >  站長(zhǎng) >  編程技術(shù) >  正文

    Html5原生拖拽相關(guān)事件簡(jiǎn)介以及基礎(chǔ)實(shí)現(xiàn)

     2020-12-02 10:37  來(lái)源: 腳本之家   我來(lái)投稿 撤稿糾錯(cuò)

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

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

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

    拖拽實(shí)現(xiàn)

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

    相關(guān)事件定義與用法

    涉及一個(gè)屬性六個(gè)事件。事件均為H5原生事件。

    屬性

    draggable:正常div是不允許進(jìn)行拖動(dòng)的。需要添加屬性draggable="true"將元素設(shè)置為可拖動(dòng)。

    事件

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

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

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

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

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

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

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

    基礎(chǔ)代碼實(shí)現(xiàn)

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

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

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

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

    拖拽元素H5代碼如下

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

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

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

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

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

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

    放置元素H5代碼如下

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

    實(shí)例

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

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>拖拽實(shí)現(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è)置被拖動(dòng)的數(shù)據(jù),可簡(jiǎn)單理解為設(shè)置Box的值為被拖動(dòng)元素的id。此處為"Box"
    event.dataTransfer.setData("Box", event.target.id);
    }
    function handleOndragover(event) {
    event.preventDefault();
    }
    function handleOndrop(event) {
    // 拖拽元素被放下時(shí)調(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>

    最后

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

    參考鏈接:

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

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

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

    來(lái)源:腳本之家

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

    申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

    相關(guān)標(biāo)簽
    html5
    html5從入門(mén)到精通
    heml

    相關(guān)文章

    • Html5移動(dòng)端div固定到底部實(shí)現(xiàn)底部導(dǎo)航條的幾種方式

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

      標(biāo)簽:
      html5
    • HTML5拖拽文件上傳的示例代碼

      這篇文章主要介紹了HTML5拖拽文件上傳的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

      標(biāo)簽:
      html5
    • HTML5 層的疊加的實(shí)現(xiàn)

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

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

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

      標(biāo)簽:
      html5
    • html5關(guān)于外鏈嵌入頁(yè)面通信問(wèn)題

      這篇文章主要介紹了html5關(guān)于外鏈嵌入頁(yè)面通信問(wèn)題(postMessage解決跨域通信),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

      標(biāo)簽:
      html5

    熱門(mén)排行

    信息推薦