校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 詳解Html5原生拖拽操作

詳解Html5原生拖拽操作

熱門標簽:中紳電銷智能機器人 ai電銷機器人連接網關 跟電銷機器人做同事 鶴壁手機自動外呼系統怎么安裝 鄭州電銷外呼系統違法嗎 漳州人工外呼系統排名 農村住宅地圖標注 威海營銷外呼系統招商 濟南辦理400電話

最近的一次項目開發中用到了H5的拖拽功能,由于現有項目使用的是VUE全家桶,使用了vuedragable這個插件,但是整個過程是比較痛苦的。遂決定從H5拖拽的原理開始研究,然后再將其應用到數據驅動的框架中。在H5中要想實現拖放操作,至少需要經過兩個步驟:1) 將想要拖放的對象元素的draggable屬性設為true(img與a元素默認允許拖放);2) 編寫與拖放相關的事件處理代碼。為了測試簡便,我這里首先使用jQuery庫完成拖拽的基本功能。

1. 拖拽過程

1.1 拖動事件

當按住鼠標拖動draggable元素的時候會按照如下順序依次觸發

dragstart -> drag -> dragend

  1. dragstart :在按住鼠標開始拖動時候觸發(觸發一次)
  2. drag :在按住鼠標拖動的過程觸發(持續觸發)
  3. dragend :在釋放鼠標后觸發(無論是把元素放到了有效的放置目標,還是放置到了無效的放置目標上)

1.2 放置事件

當將draggable元素元素拖動到容器中將會按照如下順序依次觸發

dragenter -> dragover -> drop

dragenter:只要有元素被拖動到放置目標上,就會觸發dragenter事件
dragover:dragenter緊隨其后的就是dragover事件,而且在被拖動的元素還在放置目標的范圍內移動時,就會持續觸發該事件。
dragleave:元素被拖出了放置目標,會觸發dragleave
drop:將拖動元素放置到目標元素上的時候會激發

1.3 完整事件流

從開始拖動元素到放置元素到目標區域,將會按照如下順序依次觸發

dragstart->drag->dragenter->dragover->dragleave->drop->dragend

2. 解決firefox對拖拽不支持的問題

如果我們直接給一個元素添加draggable屬性,在chrome,opera中是可以直接進行拖拽(沒有可以釋放的操作(比如箭頭變+號)),但是在firefox卻沒有反應

    <ul class="canDrog">
        <li draggable="true" id="1">優</li>
        <li draggable="true" id="2">良</li>
        <li draggable="true" id="3">中</li>
        <li draggable="true" id="4">差</li>
    </ul>
    <script>
        //沒有任何JS代碼
    </script>

要解決這個問題必須為拖拽元素綁定dragstart事件處理函數,并且在該函數中調用event.dataTransfer.setData函數

<script>
     <ul class="canDrog">
        <li draggable="true" id="1">優</li>
        <li draggable="true" id="2">良</li>
        <li draggable="true" id="3">中</li>
        <li draggable="true" id="4">差</li>
    </ul>
    $('.canDrog > li').bind('dragstart',function(event){
        //firefox 必須訪問用于拖拽通信的dataTransfer對象
        event.dataTransfer.setData("Text",'1');
    });
</script>

3. 解決chrome,opera拖拽元素至容器中時沒有顯示可釋放標識問題

可釋放標識使用不同的操作系統可能不同,在mac chrome中出現的是一個圓形標識里面嵌入一個白色的'+'。

解決方案是為容器綁定dragover事件

     <ul class="canDrog">
        <li draggable="true" id="1">優</li>
        <li draggable="true" id="2">良</li>
        <li draggable="true" id="3">中</li>
        <li draggable="true" id="4">差</li>
    </ul>
    <table class="dataTbl">
            <thead>
                <tr>
                    <th style="width: 10%">節次/星期</th>
                    <th>周一</th>
                    <th>周二</th>
                    <th>周三</th>
                    <th>周四</th>
                    <th>周五</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>第一節</td>
                    <td draggable="true" ></td>
                    <td draggable="true" ></td>
                    <td draggable="true" ></td>
                    <td draggable="true" ></td>
                    <td draggable="true" ></td>
                </tr>
                <!--此處省略-->
            </tbody>
    </table>
<script>
    $('.canDrog > li').bind('dragstart',function(event){
        //firefox 必須訪問用于拖拽通信的dataTransfer對象
        event.dataTransfer.setData("Text",'1');
    });
    //google chrome,opera需要添加
    $(".dataTbl").bind("dragover",'td',function(e){  
        e.originalEvent.preventDefault();  
    })  
</script>

4. 解決放置時firefox打開新選項卡問題

使用firefox的時候如果釋放了被拖拽的元素,默認瀏覽器將會打開一個新的選項卡,如下

這是由于drop回調函數之后瀏覽器執行了默認行為,通常的解決方案在拖拽容器的drop鉤子中添加阻止默認事件執行以及阻止冒泡的代碼。

<script>
    //將元素釋放到當前元素中
    $('.dataTbl').bind('drop','td',function(event){
        console.log('+++drop');
        event.preventDefault();
        event.stopPropagation();
    });
</script>

但是如果將draggable元素拖到其他地方,依然會導致打開新選項卡問題的出現,這時可以為所有容器添加如上代碼。

5. 編寫一個完整小例子

源碼: https://github.com/pluslicy/drag

隨后將對vuedraggable插件庫進行學習,應用在vue框架中

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:萍鄉 甘南 惠州 營口 紅河 蘇州 咸陽 文山

巨人網絡通訊聲明:本文標題《詳解Html5原生拖拽操作》,本文關鍵詞  詳解,Html5,原生,拖拽,操作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Html5原生拖拽操作》相關的同類信息!
  • 本頁收集關于詳解Html5原生拖拽操作的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    在线视频欧美区| 亚洲愉拍自拍另类高清精品| 亚州成人在线电影| 在线观看区一区二| 亚洲男人的天堂一区二区| 成人福利视频网站| 亚洲欧洲无码一区二区三区| 91在线播放网址| 亚洲动漫第一页| xvideos.蜜桃一区二区| 国产精品一区二区视频| 国产精品女主播av| 欧美日韩国产首页在线观看| 日本免费在线视频不卡一不卡二 | 一区二区在线免费观看| 91麻豆免费视频| 亚洲午夜久久久久| 欧美电影免费提供在线观看| 精品综合免费视频观看| 亚洲天堂av一区| 91.xcao| 国产99久久久精品| 天天综合日日夜夜精品| 国产亚洲美州欧州综合国| 欧美午夜免费电影| 国产精品小仙女| 另类综合日韩欧美亚洲| 欧美一区二区久久久| 日本韩国欧美在线| 国产剧情一区在线| 日本女人一区二区三区| 一区二区三区欧美亚洲| 国产免费成人在线视频| 欧美一区二区二区| 欧日韩精品视频| 99久久99久久精品免费观看 | 亚洲三级在线看| 欧美本精品男人aⅴ天堂| 色噜噜偷拍精品综合在线| 国产精品69毛片高清亚洲| 免播放器亚洲一区| 日本女人一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 国产精品色哟哟网站| 欧美精品一区二区在线观看| 日韩一区二区三区电影在线观看| 欧美日韩国产影片| 欧美日韩视频第一区| 欧美日韩亚州综合| 欧美喷水一区二区| 欧美男同性恋视频网站| 欧美日韩国产精品自在自线| 欧美日韩情趣电影| 欧美日韩在线播放| 欧美成人综合网站| 久久久久久久久久久99999| 国产婷婷精品av在线| 国产精品久久二区二区| 亚洲伊人伊色伊影伊综合网| 天天综合色天天综合| 奇米色一区二区| 韩国av一区二区三区在线观看| 国模冰冰炮一区二区| 成人激情免费视频| 91久久精品网| 日韩天堂在线观看| 中文字幕一区二区三区在线观看| 亚洲一区二区在线视频| 日本91福利区| 91在线一区二区三区| 欧美一区二区三级| 亚洲天堂福利av| 狠狠狠色丁香婷婷综合久久五月| 色综合天天综合色综合av | 99久久国产综合精品色伊| 欧美日韩一级片在线观看| 国产偷国产偷亚洲高清人白洁| 亚洲国产日韩综合久久精品| 韩国视频一区二区| 亚洲国产高清aⅴ视频| 欧美aaa在线| 欧美性欧美巨大黑白大战| 国产欧美精品一区aⅴ影院 | 自拍偷拍亚洲综合| 狠狠网亚洲精品| 欧美军同video69gay| 亚洲精品国产a| 成人aa视频在线观看| 久久精品日产第一区二区三区高清版 | 精品在线亚洲视频| 91精品麻豆日日躁夜夜躁| 亚洲国产美女搞黄色| 91成人免费电影| 亚洲精品国产a久久久久久| 91视频国产资源| 1区2区3区精品视频| 91视频观看免费| 一区二区三区精品在线| 色婷婷av一区二区三区gif| 亚洲午夜久久久久久久久电影院 | 欧美少妇性性性| 亚洲一区二区三区不卡国产欧美| 色综合天天性综合| 午夜影院在线观看欧美| 在线播放一区二区三区| 日本vs亚洲vs韩国一区三区| 久久久午夜电影| 色综合视频在线观看| 日韩精彩视频在线观看| 国产日韩欧美在线一区| 在线观看日韩精品| 韩国成人精品a∨在线观看| 综合久久给合久久狠狠狠97色 | 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产午夜久久久久| 99久久精品国产观看| 免费成人av在线播放| 国产精品嫩草久久久久| 精品视频一区三区九区| 国产成人8x视频一区二区| 亚洲成人激情综合网| 久久久精品蜜桃| 在线观看av不卡| 国产精品一级片| 亚洲成人久久影院| 亚洲欧美日韩国产成人精品影院| 久久午夜国产精品| 91精品国产aⅴ一区二区| 91免费观看国产| 高清不卡一二三区| 国产一区二区美女| 免费av成人在线| 日本成人中文字幕| 亚洲综合视频在线观看| 中文在线一区二区| 国产欧美一区二区精品忘忧草| 3751色影院一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 国产iv一区二区三区| 国产风韵犹存在线视精品| 国产一区视频网站| 国产一区激情在线| 国产一区二区主播在线| 激情综合五月婷婷| 国产精品一卡二卡| 国产盗摄女厕一区二区三区| 国产精品一区专区| 成人国产亚洲欧美成人综合网| 东方aⅴ免费观看久久av| zzijzzij亚洲日本少妇熟睡| 99久久久免费精品国产一区二区| 91免费在线看| 欧美一区日韩一区| 久久免费视频色| 亚洲丝袜制服诱惑| 日韩国产在线观看| 国内精品国产三级国产a久久| 懂色av中文字幕一区二区三区| 在线欧美小视频| 日韩欧美国产一区在线观看| 国产视频一区二区在线观看| 国产精品久久影院| 午夜精品一区在线观看| 国产一区二区三区在线观看免费视频| 欧美日韩激情在线| 欧美极品xxx| 秋霞午夜av一区二区三区| 成人国产精品视频| 欧美日韩黄视频| 一区二区三区在线视频播放| 狠狠色丁香久久婷婷综合_中| 色偷偷久久人人79超碰人人澡| 精品国产一区二区三区不卡| 国产精品美女久久久久久久久| 久久精品噜噜噜成人av农村| 99精品视频在线播放观看| 精品国内二区三区| 美日韩一区二区| 欧美在线免费视屏| 亚洲一区中文在线| 92精品国产成人观看免费| 国产女人18水真多18精品一级做| 美女网站色91| 日韩一区二区三区精品视频| 亚洲一区二区在线免费观看视频| 国产成人激情av| 国产亚洲精品bt天堂精选| 国产综合色产在线精品| 精品国精品国产尤物美女| 美脚の诱脚舐め脚责91| 欧美一区二区三区免费观看视频 | 高清不卡一区二区| 欧美国产禁国产网站cc| 韩日欧美一区二区三区| 久久日一线二线三线suv| 久久国内精品视频| 亚洲精品一线二线三线| 国产成人激情av| 亚洲精品美国一| 欧美无砖砖区免费|