婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML5 drag和drop具體使用詳解

HTML5 drag和drop具體使用詳解

熱門標簽:通遼地圖標注app 智能語音電銷機器人客戶端 威海語音外呼系統平臺 江西ai電銷機器人如何 西安金倫外呼系統 地圖標注員工作內容 地圖標注沿海城市房價 高德地圖標注廁所 中國地圖標注城市的

簡介

拖拽(Drag/Drop)是一個很普遍、很常用的操作,即抓取一個對象后,放到想要放的地方。 在H5中,拖拽是一個標準操作,任何元素都可以拖拽!! 但是!! 想要實現拖拽,需要添加 拖拽屬性。

H5中拖拽屬性:draggable: auto | true | false

注意:鏈接和圖片默認是可拖動的,則不需要 draggable 屬性。

- Drag(在拖拽目標時觸發事件)

  • dragstart - 元素開始拖動時觸發此事件
  • drag - 元素正在拖動時觸發此事件
  • dragend - 元素拖動結束后觸發此事件

- Drop(在目標區域釋放時觸發事件)

  • dragenter - 當被拖動的元素進入目標區域內時觸發此事件
  • dragover - 當被拖動的元素在目標區域內拖動時觸發此事件
  • dragleave - 當被拖動的元素離開目標區域時觸發此事件
  • drop - 當被拖動的元素在目標區域被放下時觸發此事件

拖拽步驟

設置元素屬性draggable 為 true

  <main class="main">
    <div class="left" id="left">
      <div class="txt-show">左邊區域</div>
      <div class="dargable txt" id="txt1" draggable="true">可移動的文字一</div>
      <div class="dargable txt" id="txt2" draggable="true">可移動的文字二</div>
      <div class="dargable txt" id="txt3" draggable="true">可移動的文字三</div>
      <div class="dargable txt" id="txt4" draggable="true">可移動的文字四</div>
      <div class="dargable txt" id="txt5" draggable="true">可移動的文字五</div>
    </div>
    <div class="right" id="right">
      <div class="txt-show">右邊區域</div>
    </div>
  </main>

拖動

dragstart 事件: 在進行拖放操作時,通過dataTransfer來實現數據的存儲和獲取,每個event事件對象中都會有DataTransfer對象用來保存被拖動的數據。它可以保存一項或多項數據、一種或者多種數據類型。

  let left = document.getElementById('left')
  let target = document.getElementById('right')
  left.addEventListener('dragstart', (event) => {
    const target = event.target;
    // 在項目拖動的開始事件(ondragstart)的時候,可以對dataTransfer進行設值操作(setData)。
    // 拖拽, dataTransfer 屬性, 等于運輸車
    // 后續用 dataTransfer.getData獲取
    // 在項目拖動結束的時,可以獲取dataTransfer對象里的值。
    event.dataTransfer.setData('Text', target.id)
    // js 事件有冒泡機制
    console.log('drag開始拖動啦1');
  })

drag事件:在拖拽過程中一直執行

  left.addEventListener('drag', (event) => {
    console.log('drag正在拖啦2');
  })

dragend事件:結束

 left.addEventListener('dragend', (event) => {
    console.log('dragend拖動結束啦7');
  })

放置

dragenter 和dragleave 事件:進入或離開目標區域

  target.addEventListener('dragenter', (event) => {
    console.log('dragenter進入區域啦3')
  })
    target.addEventListener('dragleave', (event) => {
    console.log('dragleave離開拖動區域啦5')
  })

dragover事件:默認無法將數據/元素放置到其他元素中。如果需要設置允許放置,就要阻止元素的默認行為。

  target.addEventListener('dragover', (event) => {
    // 阻止默認行為
    event.preventDefault();
    console.log('dragover在區域內拖動啦4')
  })

drop事件:放下

  target.addEventListener('drop', (event) => {
    console.log('drop釋放鼠標啦6')
    let drag_id = event.dataTransfer.getData('text')
    target.appendChild(document.getElementById(drag_id))
  })

完整代碼

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .main {
      display: flex;
      justify-content:space-around;
    }
    .left {
      width: 300px;
      height: 500px;
      border: 1px solid lightseagreen;
      margin-right: 10px;
      /* background-color: green; */
    }
    .right {
      width: 300px;
      height: 500px;
      border: 1px solid lightseagreen;
      text-align: center;
      padding: 1px;
      /* background: red; */
    }
    .txt {
      border: 1px solid gray;
      margin: 1px;
      padding: 5px;
      cursor: move;
    }
  </style>
</head>
<body>
  <main class="main">
    <div class="left" id="left">
      <div class="txt-show">左邊區域</div>
      <div class="dargable txt" id="txt1" draggable="true">可移動的文字一</div>
      <div class="dargable txt" id="txt2" draggable="true">可移動的文字二</div>
      <div class="dargable txt" id="txt3" draggable="true">可移動的文字三</div>
      <div class="dargable txt" id="txt4" draggable="true">可移動的文字四</div>
      <div class="dargable txt" id="txt5" draggable="true">可移動的文字五</div>
    </div>
    <div class="right" id="right">
      <div class="txt-show">右邊區域</div>
    </div>
  </main>
  <script>
  let left = document.getElementById('left')
  let target = document.getElementById('right')
  left.addEventListener('dragstart', (event) => {
    event.dataTransfer.setData('Text', target.id)
    console.log('drag開始拖動啦1');
  })
  target.addEventListener('dragstart', (event) => {
    const target = event.target; 
    event.dataTransfer.setData('Text', target.id)
  })
  left.addEventListener('drag', (event) => {
    console.log('drag正在拖啦2');
  })
  left.addEventListener('dragend', (event) => {
    console.log('dragend拖動結束啦7');
  })
  target.addEventListener('dragenter', (event) => {
    console.log('dragenter進入區域啦3')
  })
  target.addEventListener('dragover', (event) => {
    event.preventDefault();
    console.log('dragover在區域內拖動啦4')
  })
  left.addEventListener('dragover', (event) => {
    event.preventDefault();
  })
  target.addEventListener('dragleave', (event) => {
    console.log('dragleave離開拖動區域啦5')
  })
  target.addEventListener('drop', (event) => {
    let drag_id = event.dataTransfer.getData('text')
    target.appendChild(document.getElementById(drag_id))
  })
  left.addEventListener('drop', (event) => {
    let drag_id = event.dataTransfer.getData('text')
    left.appendChild(document.getElementById(drag_id))
  })
  </script>
</body>
</html>

小記

dragstart事件中通過dataTransfer來實現數據的存儲和獲取,每個event事件對象中都會有DataTransfer對象用來保存被拖動的數據。在項目拖動的開始事件(ondragstart)的時候,可以對dataTransfer進行設值操作(setData)。event.dataTransfer.setData() 進行設值,在拖動結束后,可以通過event.dataTransfer.getData()獲取dataTransfer對象里的值。

瀏覽器默認無法將數據/元素放置到其他元素中,如果需要設置允許放置,就要阻止元素的默認行為。通過event.preventDefault()阻止。

可以通過添加css樣式進行對拖拽效果的改變。例:dragSrc.classList.add('ds') 。使用classList在元素中添加,移除及切換 CSS 類,classList 屬性是只讀的,但可以使用 add() 和 remove() 方法修改它。

使用 appendChild() 方法移除元素到另外一個元素。

HTML Drag and Drop API

DataTransfer()

HTML DOM appendChild() 方法

HTML DOM addEventListener() 方法

到此這篇關于HTML5 drag和drop具體使用詳解的文章就介紹到這了,更多相關HTML5 drag和drop內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

標簽:河池 青海 崇左 阜陽 眉山 晉中 北海 營口

巨人網絡通訊聲明:本文標題《HTML5 drag和drop具體使用詳解》,本文關鍵詞  HTML5,drag,和,drop,具體,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 drag和drop具體使用詳解》相關的同類信息!
  • 本頁收集關于HTML5 drag和drop具體使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲福利国产精品| 国产丝袜欧美中文另类| www.成人网.com| 粉嫩av一区二区三区| 国产成人啪午夜精品网站男同| 国产自产高清不卡| 懂色av一区二区在线播放| 国产99久久精品| 99久久夜色精品国产网站| 91在线视频网址| 精品视频资源站| 日韩一卡二卡三卡四卡| 精品久久久久久久久久久久久久久 | 色天天综合色天天久久| 国产一区 二区| 成人sese在线| 欧美视频日韩视频| 精品国产一区a| 亚洲国产精品ⅴa在线观看| 亚洲人成网站精品片在线观看 | 欧美日韩国产免费| 日韩欧美激情一区| 国产精品久久久久久久久免费丝袜 | 黄色精品一二区| 成人免费视频视频| 911精品国产一区二区在线| 欧美一区二区三区精品| 国产午夜精品久久久久久免费视 | 日韩一区在线看| 亚洲成a人在线观看| 国产一区二区三区精品视频| 91在线视频观看| 精品日本一线二线三线不卡| 亚洲图片激情小说| 六月丁香婷婷久久| 色婷婷久久久综合中文字幕| 日韩美女视频一区二区在线观看| 中文字幕一区二区三区在线观看| 日韩电影在线免费看| 成人av网站免费观看| 欧美一级视频精品观看| 一区二区三区在线看| 国产精品99久久不卡二区| 欧美午夜片在线观看| 中文字幕av资源一区| 久久国产精品免费| 欧美日韩性生活| 最新日韩在线视频| 国产麻豆一精品一av一免费 | 91精品在线免费| 1024成人网色www| 国产激情偷乱视频一区二区三区| 欧美日韩dvd在线观看| 亚洲视频一区二区在线观看| 精品一区二区三区在线视频| 欧美日韩精品福利| 一区二区三区免费在线观看| 国产福利一区二区三区视频| 日韩免费视频一区| 人人狠狠综合久久亚洲| 欧美综合欧美视频| 亚洲精品国产无天堂网2021| www..com久久爱| 国产精品你懂的在线| 国产精品亚洲一区二区三区在线| 欧美丰满嫩嫩电影| 日韩激情视频网站| 欧美一区二区福利在线| 五月天视频一区| 欧美日韩成人一区| 日本不卡123| 日韩免费观看高清完整版| 舔着乳尖日韩一区| 日韩欧美中文字幕一区| 久久精品免费看| 久久久蜜桃精品| 成人午夜又粗又硬又大| 国产精品久久久久毛片软件| www.日韩大片| 一区二区三区美女视频| 欧美日韩一区国产| 麻豆精品久久精品色综合| 欧美电视剧在线看免费| 精品一区二区三区在线播放视频| 久久精品在这里| 91免费视频网| 日韩av高清在线观看| 日韩免费看的电影| 成人精品视频网站| 亚洲一区中文日韩| 日韩精品一区二区三区四区 | 日本高清视频一区二区| 婷婷久久综合九色综合绿巨人 | 欧美日韩aaaaaa| 国内精品久久久久影院一蜜桃| 久久综合色婷婷| eeuss鲁片一区二区三区| 亚洲综合无码一区二区| 精品国产乱码久久久久久久久| 国产福利一区在线| 亚洲综合在线视频| 欧美精品一区二区三区蜜桃| 91在线精品一区二区| 奇米777欧美一区二区| 国产精品久久久久久久久快鸭| 欧美曰成人黄网| 国产黄色精品视频| 午夜欧美在线一二页| 亚洲国产精华液网站w| 在线成人免费视频| av一区二区三区| 精品一区二区三区在线观看| 一区二区三区毛片| 欧美国产精品专区| 日韩一区二区三| 色av一区二区| 国产成a人亚洲精品| 亚洲v中文字幕| 国产精品美日韩| 精品美女在线播放| 欧美日韩电影一区| 色域天天综合网| 国产成人高清视频| 麻豆免费看一区二区三区| 亚洲麻豆国产自偷在线| 国产欧美日韩另类视频免费观看 | 亚洲婷婷国产精品电影人久久| 欧美一区二区视频在线观看| 色欧美日韩亚洲| av午夜一区麻豆| 国产91精品一区二区麻豆网站 | 欧美国产精品久久| xnxx国产精品| 精品sm在线观看| 精品国产乱码久久久久久老虎| 欧美喷潮久久久xxxxx| 日本韩国欧美在线| 91麻豆精东视频| 91在线观看成人| 成人午夜av在线| 成人av电影在线观看| 成人中文字幕在线| 成人免费视频app| 国产+成+人+亚洲欧洲自线| 国产乱一区二区| 国产一区二区三区免费观看| 国产在线麻豆精品观看| 国产综合色视频| 懂色一区二区三区免费观看| 国产91精品入口| av电影天堂一区二区在线观看| 成人理论电影网| 欧美自拍偷拍午夜视频| 欧美图区在线视频| 91精品国产综合久久久久久 | 麻豆精品精品国产自在97香蕉| 蜜桃久久av一区| 精品在线播放免费| 成人小视频免费在线观看| 粉嫩绯色av一区二区在线观看 | 日韩久久一区二区| 亚洲国产精品精华液网站| 丝袜亚洲精品中文字幕一区| 日本va欧美va欧美va精品| 国产主播一区二区三区| 99久久精品国产毛片| 欧美在线啊v一区| 精品日韩欧美一区二区| 国产精品第一页第二页第三页| 亚洲精品美国一| 喷白浆一区二区| 波多野洁衣一区| 欧美日韩成人在线| 国产婷婷色一区二区三区| 亚洲激情男女视频| 美女尤物国产一区| 99精品国产一区二区三区不卡| 色偷偷成人一区二区三区91| 91精品国产91久久久久久一区二区| 精品国产乱码91久久久久久网站| 国产精品视频在线看| 亚洲成a天堂v人片| 岛国av在线一区| 欧美一区日韩一区| 亚洲欧洲日韩综合一区二区| 蜜桃视频免费观看一区| 99精品欧美一区二区三区小说| 日韩一区二区影院| 亚洲精品国久久99热| 国产原创一区二区| 欧美高清一级片在线| 国产精品亲子乱子伦xxxx裸| 男男gaygay亚洲| 欧美在线观看视频在线| 国产亚洲一本大道中文在线| 亚洲成人一区二区在线观看| 成人视屏免费看| 久久精品亚洲一区二区三区浴池 | 欧美一区二区三区免费大片| 成人欧美一区二区三区白人 |