日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

    歡迎訪問 生活随笔!

    生活随笔

    當前位置: 首頁 > 前端技术 > HTML >内容正文

    HTML

    Vue结合HTML5拖放API 实现目录拖拽~

    發布時間:2023/12/2 HTML 31 豆豆
    生活随笔 收集整理的這篇文章主要介紹了 Vue结合HTML5拖放API 实现目录拖拽~ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

    拖放事件

    dom被拖拽--->經過一些dom--->到達指定dom

    • 被拖拽的dom:(源對象)

      dragstart 源對象被拖拽

      drag 源對象拖拽過程中

      dragend 源對象拖拽結束(drop事件后執行)

    • 拖拽過程中經過的dom:(過程對象)

      dragenter 源對象進入過程對象

      dragover 源對象在過程對象中移動 (設置event.preventDefault(),否則drop事件不會執行)

      drageleave 源對象離開過程對象

    • 拖拽到達指定的dom:(目標對象)

      drop 拖放到指定目標對象內

    • dataTransfer對象:(拖拽過程中數據傳遞對象)

      setData()存入數據

      支持格式:text/plain、text/html、text/xml、text/url-list

      getData()

      clearData()

    實現

    實現目錄可在同級、子級拖動

    思路:
  1. 在dragstart時向dataTransfer對象存入源對象的數據
  2. 在dragenter時給過程對象加同級拖拽標識
  3. 在dragenter時同時記錄下進入時鼠標的坐標(x1, y1)

  4. 當dragover時依然記錄下鼠標的坐標(x2, y2)

  5. 設定規則加子級拖拽標識,例如:Math.abs(x2-x1) > 50

  6. 當dragleave時,去掉所有標識
  7. 當drop時,獲取dataTransfer對象的數據,并更新拖拽數據
  8. 當dragend時,去掉所有標識
  9. 效果

  10. 拖拽到子級
  11. 2.拖拽到同級

    此例子是結合vue遞歸組件實現:vue-drag


    更多專業前端知識,請上 【猿2048】www.mk2048.com

    總結

    以上是生活随笔為你收集整理的Vue结合HTML5拖放API 实现目录拖拽~的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。