真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

HTML5中如何實現(xiàn)拖放

這篇文章主要介紹HTML5中如何實現(xiàn)拖放,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、江口網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為江口等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

關(guān)于HTML5中的拖放

拖放(Drag 和 Drop)是一種常見的特性,即抓取對象以后拖到另一個位置,在 HTML5 中,拖放是標(biāo)準(zhǔn)的組成部分。在HTML5中用戶可以使用鼠標(biāo)選擇一個可拖動元素,將元素拖動到一個可放置元素,并通過釋放鼠標(biāo)按鈕放到這些元素。在拖動操作期間,可拖動元素的半透明表示跟隨鼠標(biāo)指針。

如果我們希望元素可以被拖動,那么需要將其 draggable屬性設(shè)為true (a標(biāo)簽draggable默認(rèn)是true)

拖放的事件

在進行拖放操作的不同階段會觸發(fā)數(shù)種事件,拖拽事件的dataTransfer屬性存放了拖放操作中的相關(guān)數(shù)據(jù)。

dragstart作用于[源元素],當(dāng)一個元素開始被拖拽的時候觸發(fā),用戶拖拽的元素需要附加dragstart事件。在這個事件中,監(jiān)聽器將設(shè)置與這次拖拽相關(guān)的信息,例如拖動的數(shù)據(jù)和圖像。
dragenter作用于[源元素],當(dāng)拖拽中的鼠標(biāo)進入一個元素的時候觸發(fā)。這個事件的監(jiān)聽器需要指明是否允許在這個區(qū)域釋放鼠標(biāo)。如果沒有設(shè)置監(jiān)聽器,或者監(jiān)聽器沒有進行操作,則默認(rèn)不允許釋放。
dragover作用于[目標(biāo)元素],當(dāng)拖拽中的鼠標(biāo)移動經(jīng)過一個元素的時候觸發(fā)。
dragleave作用于[目標(biāo)元素],當(dāng)拖拽中的鼠標(biāo)離開元素時觸發(fā)??梢宰鳛榭舍尫欧答伒母吡粱虿迦霕?biāo)記去除。
drag作用于[源元素],事件在元素被拖動時觸發(fā)。
drop作用于[目標(biāo)元素],在拖拽操作結(jié)束釋放時于釋放元素上觸發(fā)。
dragend作用于[源元素],拖拽源在拖拽操作結(jié)束時觸發(fā),不管操作成功與否。

(在拖拽的時候只會觸發(fā)拖拽的相關(guān)事件,鼠標(biāo)事件,例如mousemove,是不會觸發(fā)的)

DataTransfer 對象

在處理拖放操作時,我們需要用到 DataTransfer 對象來保存被拖動的數(shù)據(jù)。 DataTransfer 可以保存一項或多項數(shù)據(jù)、一種或者多種數(shù)據(jù)類型。
屬性

dropEffectdropEffect    
[String]指定實際的放置效果,可能的值:
copy: 復(fù)制到新的位置
move: 移動到新的位置
link: 建立一個源位置到新位置的鏈接
none: 禁止放置(禁止任何操作)
effectAllowed[String]指定拖動時被允許的效果,可能的值:
copy: 復(fù)制到新的位置.
move:移動到新的位置 .
link:建立一個源位置到新位置的鏈接.
copyLink: 允許復(fù)制或者鏈接.
copyMove: 允許復(fù)制或者移動.
linkMove: 允許鏈接或者移動.
all: 允許所有的操作.
none: 禁止所有操作.
uninitialized: 缺省值(默認(rèn)值), 相當(dāng)于 all.
files包含一個在數(shù)據(jù)傳輸上所有可用的本地文件列表。如果拖動操作不涉及拖動文件,此屬性是一個空列表。
types保存一個被存儲數(shù)據(jù)的類型列表作為第一項,順序與被添加數(shù)據(jù)的順序一致。如果沒有添加數(shù)據(jù)將返回一個空列表。

方法

void addElement(Element element)設(shè)置拖動源。通常不需要改變這項,如果修改這項將會影響拖動的哪個節(jié)點和dragend事件的觸發(fā)。默認(rèn)目標(biāo)是被拖動的節(jié)點
void clearData(String type)刪除與給定類型關(guān)聯(lián)的數(shù)據(jù)。類型參數(shù)是可選的。如果類型為空或未指定,將刪除所有類型相關(guān)聯(lián)的數(shù)據(jù)。如果不存在指定類型的數(shù)據(jù),或數(shù)據(jù)傳輸不包含任何數(shù)據(jù),此方法將沒有任何效果。
String getData(String type)獲得給定類型的數(shù)據(jù),如果給定類型的數(shù)據(jù)不存在或者數(shù)據(jù)轉(zhuǎn)存沒有包涵數(shù)據(jù),方法將返回一個空字符串。
void setData(String type,String data)為一個給定的類型設(shè)置數(shù)據(jù)。如果該數(shù)據(jù)類型不存在,它將添加到的末尾,這樣類型列表中的最后一個項目將是新的格式。如果已經(jīng)存在的數(shù)據(jù)類型,替換相同的位置的現(xiàn)有數(shù)據(jù)。就是,當(dāng)更換相同類型的數(shù)據(jù)時,不會更改類型列表的順序。
void setDragImage(DOMElement image,long x,long y)自定義一個期望的拖動時的圖片。大多數(shù)情況下,這項不用設(shè)置,因為被拖動的節(jié)點被創(chuàng)建成默認(rèn)圖片。
image 要用作拖動反饋圖像元素
x 圖像內(nèi)的水平偏移量.
y 像內(nèi)的垂直偏移量.

瀏覽器支持

Internet Explorer 9+、Firefox、Opera 12、Chrome 以及 Safari 5+

演示代碼





Drag & Drop

.box {
    display: inline-block;
    width: 100px;
    height: 100px;
    border: 1px solid #ccccff;
    background-color: #ccccff;
    text-align: center;
    line-height: 100px;
}
.bin {
    width: 200px;
    height: 200px;
    padding: 10px;
    border: 1px solid #ccccff;
    overflow: hidden;
    float: left;
}



    
        
            可拖拽元素

        

         

    

             var bins = document.querySelectorAll('.bin');         var boxs = document.querySelectorAll('.box');         var drag = null;         for (var i = 0; i < boxs.length; i++) {             var box = boxs[i];             box.onselectstart = function() {                 return false;             };             box.ondragstart = function(e) {                 e.dataTransfer.effectAllowed = 'move';                 e.dataTransfer.setData('text/plain', e.target.outerHTML);                 e.dataTransfer.setDragImage(e.target, 0, 0);                 drag = this;                 return true;             };             box.ondragend = function(e) {                 drag = null;                 return false             };         }         for (var i = 0; i < bins.length; i++) {             var bin = bins[i];             //當(dāng)拖曳元素進入目標(biāo)元素             bin.ondragover = function(e) {                 e.preentDefault();                 return true;             };             //拖拽元素在目標(biāo)元素上移動             bin.ondragenter = function(e) {                 this.style.backgroundColor = '#eeeeff';                 return true;             };             //拖拽元素在目標(biāo)元素上離開             bin.ondragleave = function(e) {                 this.style.backgroundColor = '#fff';                 return true;             };             //拖拽的元素在目標(biāo)元素上同時鼠標(biāo)放開             bin.ondrop = function(e) {                 if (drag) {                     drag.parentNode.removeChild(drag);                     this.appendChild(drag);                 }                 this.style.backgroundColor = '#fff';                 return false;             };         }         document.body.ondrop = function(e) {             e.preventDefault();             e.stopPropagation();         }     

以上是“HTML5中如何實現(xiàn)拖放”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


新聞名稱:HTML5中如何實現(xiàn)拖放
文章起源:http://weahome.cn/article/psedjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部