亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

HTML5中的拖放實現詳解

2024-08-26 00:19:54
字體:
來源:轉載
供稿:網友

關于HTML5中的拖放

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

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

拖放的事件

在進行拖放操作的不同階段會觸發數種事件,拖拽事件的dataTransfer屬性存放了拖放操作中的相關數據。

 

dragstart 作用于[源元素],當一個元素開始被拖拽的時候觸發,用戶拖拽的元素需要附加dragstart事件。在這個事件中,監聽器將設置與這次拖拽相關的信息,例如拖動的數據和圖像。
dragenter 作用于[源元素],當拖拽中的鼠標進入一個元素的時候觸發。這個事件的監聽器需要指明是否允許在這個區域釋放鼠標。如果沒有設置監聽器,或者監聽器沒有進行操作,則默認不允許釋放。
dragover 作用于[目標元素],當拖拽中的鼠標移動經過一個元素的時候觸發。
dragleave 作用于[目標元素],當拖拽中的鼠標離開元素時觸發??梢宰鳛榭舍尫欧答伒母吡粱虿迦霕擞浫コ?/td>
drag 作用于[源元素],事件在元素被拖動時觸發。
drop 作用于[目標元素],在拖拽操作結束釋放時于釋放元素上觸發。
dragend 作用于[源元素],拖拽源在拖拽操作結束時觸發,不管操作成功與否。

 

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

DataTransfer 對象

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

 

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

 

方法

 

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

 

瀏覽器支持

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

演示代碼

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Drag & Drop</title><style type="text/css">.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;}</style></head><body>    <div style="display: table;">        <div class="bin">            <div class="box" draggable="true">可拖拽元素</div>        </div>        <div class="bin">&nbsp;</div>    </div>    <script type="text/javascript">        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];            //當拖曳元素進入目標元素            bin.ondragover = function(e) {                e.preentDefault();                return true;            };            //拖拽元素在目標元素上移動            bin.ondragenter = function(e) {                this.style.backgroundColor = '#eeeeff';                return true;            };            //拖拽元素在目標元素上離開            bin.ondragleave = function(e) {                this.style.backgroundColor = '#fff';                return true;            };            //拖拽的元素在目標元素上同時鼠標放開            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();        }    </script></body></html>

以上就是HTML5中的拖放相關資料介紹,需要的朋友可以參考一下。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩人人澡狠狠躁视频| 欧洲永久精品大片ww免费漫画| 国产精品亚洲精品| 精品综合久久久久久97| 5566日本婷婷色中文字幕97| 国产在线精品一区免费香蕉| 亚洲3p在线观看| 成人黄色影片在线| 亚洲男女性事视频| 日韩av免费看网站| 亚洲综合色av| 久久精彩免费视频| 久久精品男人天堂| 欧美国产日韩一区| 国产小视频国产精品| 欧美激情欧美狂野欧美精品| 精品偷拍一区二区三区在线看| 日韩精品免费在线播放| 亚洲一区www| 96国产粉嫩美女| 国产在线精品成人一区二区三区| 亚洲第一福利网站| 色爱精品视频一区| 成人网页在线免费观看| 久久91精品国产91久久久| 久久精品99久久香蕉国产色戒| 一道本无吗dⅴd在线播放一区| 国产欧美一区二区三区久久人妖| 亚洲欧美精品中文字幕在线| 久久天天躁狠狠躁夜夜躁| 91久久嫩草影院一区二区| 成人亚洲综合色就1024| 亚洲国产小视频在线观看| 一区二区三区四区在线观看视频| 欧美孕妇孕交黑巨大网站| 中文字幕精品一区久久久久| 欧美日韩第一视频| 欧美国产精品va在线观看| 成人在线国产精品| 性亚洲最疯狂xxxx高清| 国产精品久久久久99| 蜜臀久久99精品久久久无需会员| 欧美激情18p| 亚洲欧美制服丝袜| 欧美激情在线有限公司| 日本亚洲欧美成人| 美女福利精品视频| www.日韩欧美| 亚洲欧洲日产国码av系列天堂| 97在线观看免费高清| 国产91精品久久久久久久| 91九色国产在线| 亚洲第一天堂无码专区| 欧美性猛交xxxx黑人猛交| 日韩中文字幕在线视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲成人激情图| 日韩免费看的电影电视剧大全| 91久久久在线| 精品久久在线播放| 亚洲人成人99网站| 国产综合视频在线观看| 色婷婷av一区二区三区在线观看| 久久久精品电影| 91国产一区在线| 在线观看欧美日韩国产| 91国产视频在线播放| 日韩欧美国产黄色| 日韩国产中文字幕| 日韩女优人人人人射在线视频| 欧美一区二区大胆人体摄影专业网站| 日韩精品免费视频| 午夜精品久久久99热福利| 尤物精品国产第一福利三区| 性色av一区二区三区红粉影视| 亚洲国产精品高清久久久| 麻豆一区二区在线观看| 国产在线精品自拍| 91亚洲精华国产精华| 日韩女优在线播放| 91av视频在线播放| 成人网在线观看| 亚洲精品久久久久久久久久久久久| 黄色一区二区三区| 在线观看欧美日韩| 久久久噜噜噜久久久| 亚洲精品午夜精品| 日韩在线免费高清视频| 91精品国产综合久久久久久久久| 清纯唯美亚洲综合| 亚洲综合中文字幕68页| 欧美性xxxxx| 亚洲精品国产综合区久久久久久久| 亚洲第一福利在线观看| 日本久久久久久| 91精品国产自产在线观看永久| 欧美午夜女人视频在线| 日韩电视剧在线观看免费网站| 精品日本美女福利在线观看| 欧美裸体视频网站| 欧美插天视频在线播放| 欧美限制级电影在线观看| 亚洲美女精品久久| 精品人伦一区二区三区蜜桃免费| 国产婷婷97碰碰久久人人蜜臀| 91精品久久久久久久久不口人| 欧美日本在线视频中文字字幕| 国产aⅴ夜夜欢一区二区三区| 一本色道久久88综合亚洲精品ⅰ| 亚洲视频axxx| 18一19gay欧美视频网站| 国产精品久久久久秋霞鲁丝| 国产一区视频在线| 日韩在线视频免费观看| 国产精品久久久久一区二区| 亚洲国产第一页| 日韩高清av一区二区三区| 美女黄色丝袜一区| 在线看片第一页欧美| 97在线看免费观看视频在线观看| 久久影视电视剧免费网站清宫辞电视| 精品国产91久久久久久老师| 亚洲va久久久噜噜噜| 免费91麻豆精品国产自产在线观看| 韩国19禁主播vip福利视频| 日韩av第一页| 国产精品69久久久久| 久久国产精品免费视频| 精品美女永久免费视频| 国产99视频在线观看| 日韩中文在线视频| 日韩欧美国产视频| 欧美老少做受xxxx高潮| 亚洲精品视频播放| 亚洲iv一区二区三区| 中文字幕av一区| 77777亚洲午夜久久多人| 欧美成人精品在线视频| 2020欧美日韩在线视频| 美女福利精品视频| 亚洲欧洲av一区二区| 国产成人精品在线视频| 国产精品网站视频| 国产在线a不卡| 欧美裸体男粗大视频在线观看| 欧美性猛交xxxx富婆| 欧美激情视频一区二区| 国产精品久久久久久久久久小说| 高清日韩电视剧大全免费播放在线观看| 亚洲精品自拍第一页| 中文字幕亚洲欧美日韩2019| 九九热这里只有在线精品视| 色噜噜亚洲精品中文字幕| 国产精品69久久| 日韩国产欧美精品一区二区三区| 国产视频自拍一区| 久久精品福利视频| 国产视频自拍一区| 久久精品一区中文字幕| 亚洲精品短视频| 久久99精品久久久久久琪琪| 欧美极品少妇xxxxⅹ免费视频| 国产69精品久久久久99| 国产成人啪精品视频免费网|