欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS的拖拽屬性draggable詳解

 更新時間:2023年04月23日 15:59:30   作者:搞前端的小菜  
這篇文章主要介紹了JS的拖拽屬性draggable詳解,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

摘要

作為h5新增的屬性draggable,它能夠給與一切的html元素拖動的效果。而在這個屬性之下,也有著關(guān)于拖動效果的各個方法。
而這一篇文章,主要就是說一下關(guān)于draggable屬性的使用以及工作場景。

1.了解draggable屬性的使用

對我來講,我希望在學(xué)習(xí)一個知識的時候,最開始就有顯而易見的效果,所以我先寫一個能夠讓人感受到draggable屬性作用的例子:

對于拖拽,常見的場景一定有兩個角色:

(1)拖動的元素A
(2)A被拖進的元素

現(xiàn)在我們在body中創(chuàng)建兩個元素:

<body>
  <div id="Adiv" class="A">
    A---拖拽的元素
  </div>
  <div id="Bdiv" class="B">
    B---A被拖進的元素
  </div>
</body>

現(xiàn)在我們牢記兩個點:

(1)拖動的元素要賦予draggable屬性,屬性值為true
(2)被拖進的元素要在dragover和dragenter事件值中阻止默認行為。先不需要知道這兩個事件是做什么的。我們就先這樣寫!

<body>
  <div draggable="true" id="Adiv" class="A">
    A---拖拽的元素
  </div>
  <div id="Bdiv" class="B">
    B---A被拖進的元素
  </div>
</body>

<script>
  Bdiv.ondragover = function(e){
    e.preventDefault();
  }
  Bdiv.ondragenter = function(e){
    e.preventDefault();
  }
</script>

此時A元素就是可以拖入到B元素里面

(這個時候注意了,僅僅是效果上的拖入,不可能讓A真正的成為B的子元素,松開鼠標后還是會恢復(fù)原樣的)

2.拖動元素A的事件

Ok,現(xiàn)在知道了兩個重要的角色A和B,現(xiàn)在我們先針對于A,在它拖動的過程中,我們可以控制的事件有哪些:

(1)dragstart方法:

該方法在按下鼠標并且移動鼠標時,會在A上觸發(fā)該方法。同時鼠標的光標會變成禁用的樣子,直到拖動到允許放置A的元素上,禁用的效果就會消失

而允許放置A的元素,就是剛剛說的在dragover和dragenter中阻止默認行為

現(xiàn)在我們用一個例子來演示這個方法,我希望在拖動A的時候,能讓A本身變成黃色背景:

  Adiv.ondragstart = function(){
    this.style.backgroundColor = 'yellow'
  }

(2)drag方法

該方法發(fā)生在dragstart之后,只要時在拖動過程之中,該方法就會持續(xù)觸發(fā)

  Adiv.ondrag = function(){
    console.log('drag事件');
  }

(3)dragend方法

該方法是在拖動結(jié)束的時候觸發(fā),也就是當你拖拽后,松開鼠標的一瞬間觸發(fā)。

上面的三個方法,就是針對于被拖拽的元素的。也就是賦予draggable屬性為true的元素。

一般我們比較常用的方法就是dragstrat方法,通過在這個方法中將被推拽的元素進行保存下來,再進行后續(xù)的操作。

3.拖入元素B的事件

針對于拖入元素的事件,它不需要元素具有draggable屬性,只要你想,任何元素使用這些方法都是可以的。但要記住上面所說的那兩個方法,阻止事件默認行為。

(1)dragenter方法

該方法是指拖拽元素A,在拖入到B之中,B所觸發(fā)的事件。當然,任何具有draggable屬性為true的元素,拖入到B中,都會觸發(fā)改事件。

切記,這里事件的觸發(fā)不需要松開鼠標

現(xiàn)在我們用一個例子來說明,當A拖入到B中,我們希望A是真正成為B的子元素:

  Bdiv.ondragenter = function(e){
    e.preventDefault();
    this.appendChild(Adiv);
  }

(2)dragover方法

該方法只要是,拖拽元素A在目標元素B中移動,就會持續(xù)觸發(fā)。

  Bdiv.ondragover = function(e){
    console.log('dragover事件');
    e.preventDefault();
  }

(3)dragleave方法

該方法指的是拖拽元素A,在從目標元素B中離開的時候,會觸發(fā)該方法

這里記住,一定是先進入到B,再離開B的時候觸發(fā)該事件,也就是說要先觸發(fā)dragenter方法,才能觸發(fā)dragleave方法

(4)drop方法

該方法是指,拖拽元素A被放置了目標元素B中的時候觸發(fā),那它和dragenter方法的區(qū)別在于,該方法需要鼠標松開才會觸發(fā)。而這個方法也是最常用的方法。

到此這篇關(guān)于JS的拖拽屬性draggable的文章就介紹到這了,更多相關(guān)js拖拽屬性draggable內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS鼠標事件大全 推薦收藏

    JS鼠標事件大全 推薦收藏

    JS鼠標事件大全 推薦收藏,整理的比較細,推薦大家看下。
    2011-11-11
  • JS設(shè)置CSS樣式的方式匯總

    JS設(shè)置CSS樣式的方式匯總

    這篇文章給大家總結(jié)了JS設(shè)置CSS樣式的幾種方式,每種方式都非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-01-01
  • 基于JS編寫一個看字說顏色小游戲

    基于JS編寫一個看字說顏色小游戲

    這篇文章主要為大家分享了一個看字說顏色的小游戲,游戲是利用JS語言編寫實現(xiàn)的,文中的示例代碼講解詳細,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-04-04
  • JS中的==運算: [''''] == false —>true

    JS中的==運算: [''''] == false —>true

    這篇文章主要介紹了JS中的==運算: [''] == false —>true的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • JavaScript下載后端返回的文件流的三種方法

    JavaScript下載后端返回的文件流的三種方法

    本文主要介紹了JavaScript下載后端返回的文件流的三種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • JS實現(xiàn)可改變列寬的table實例

    JS實現(xiàn)可改變列寬的table實例

    本文為大家詳細介紹下通過JS實現(xiàn)可改變列寬的table,具體的思路及代碼如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-07-07
  • JavaScript進階(二)詞法作用域與作用域鏈實例分析

    JavaScript進階(二)詞法作用域與作用域鏈實例分析

    這篇文章主要介紹了JavaScript詞法作用域與作用域鏈,結(jié)合實例形式分析了JavaScript詞法作用域與作用域鏈相關(guān)概念、原理與操作注意事項,需要的朋友可以參考下
    2020-05-05
  • 小程序上傳文件至云存儲的實現(xiàn)

    小程序上傳文件至云存儲的實現(xiàn)

    在小程序云開發(fā)中,要實現(xiàn)上傳文件至云存儲,有兩種方案:云函數(shù)和HTTP?API,本文主要講講如何使用HTTP?API實現(xiàn)小程序外上傳文件至云存儲,感興趣的可以了解一下
    2022-01-01
  • 淺析$.getJSON異步請求和同步請求

    淺析$.getJSON異步請求和同步請求

    下面小編就為大家?guī)硪黄獪\析$.getJSON異步請求和同步請求。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • javascript 通用簡單的table選項卡實現(xiàn)

    javascript 通用簡單的table選項卡實現(xiàn)

    鑒于UI妹妹每次交付過來的選項卡都夾帶了多多少少的js,而且每遇到選項卡就加一點js,造成垃圾低劣代碼逐漸堆積過多了,一直想做一個通用簡潔的選項卡庫。
    2010-05-05

最新評論