久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

如何實現html元素拖拽功能-創新互聯

這篇文章主要講解了“如何實現html元素拖拽功能”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何實現html元素拖拽功能”吧!

10年積累的成都網站制作、成都網站設計經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先制作網站后付款的網站建設流程,更有類烏齊免費網站建設讓你可以放心的選擇與我們合作。


1.創建拖拽對象
我們可以通過draggable屬性告訴瀏覽器,哪些元素需要實現拖拽功能。draggable有三個值:true:元素可以被拖拽;false:元素不能被拖拽;auto:瀏覽器自己判斷元素是否能被拖拽。
系統默認值是auto,但auto情況下瀏覽器對不同元素拖拽功能的支持是不一樣,如:支持img對象,不支持div對象。所以,如果需要拖拽一個元素,好還是把draggale設置為true。下面我們看一個例子:



代碼如下:


<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
#src > *
{
float: left;
}
#target, #src > img
{
border: thin solid black;
padding: 2px;
margin: 4px;
}
#target
{
height: 123px;
width: 220px;
text-align: center;
display: table;
}
#target > p
{
display: table-cell;
vertical-align: middle;
}
#target > img
{
margin: 1px;
}
</style>
</head>
<body>
<div id="src">
<img draggable="true" id="car1" src="img/1.jpg" alt="car1" />
<img draggable="true" id="car2" src="img/2.jpg" alt="car2" />
<img draggable="true" id="car3" src="img/3.jpg" alt="car3" />
<div id="target">
<p id="msg">
drop here</p>
</div>
</div>
<script>
var src = document.getElementById("src");
var target = document.getElementById("target");
</script>
</body>
</html>



運行效果:


如何實現html元素拖拽功能


2.處理拖拽事件
現在我們來了解拖拽相關的事件,有兩種類型的事件,一種是拖拽對象的事件,一種是投放區的事件。拖拽事件包括:dragstart:當元素拖拽開始觸發;drag:在元素拖拽過程中觸發;dragend:元素拖拽結束時觸發。下面我們就看一個例子:



代碼如下:


<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
#src > *
{
float: left;
}
#target, #src > img
{
border: thin solid black;
padding: 2px;
margin: 4px;
}
#target
{
height: 123px;
width: 220px;
text-align: center;
display: table;
}
#target > p
{
display: table-cell;
vertical-align: middle;
}
#target > img
{
margin: 1px;
}
img.dragged
{
background-color: Orange;
}
</style>
</head>
<body>
<div id="src">
<img draggable="true" id="car1" src="img/1.jpg" alt="car1" />
<img draggable="true" id="car2" src="img/2.jpg" alt="car2" />
<img draggable="true" id="car3" src="img/3.jpg" alt="car3" />
<div id="target">
<p id="msg">
drop here</p>
</div>
</div>
<script>
var src = document.getElementById("src");
var target = document.getElementById("target");
var msg = document.getElementById("msg");
src.ondragstart = function (e) {
e.target.classList.add("dragged");
}
src.ondragend = function (e) {
e.target.classList.remove("dragged");
msg.innerHTML = "drop here";
}
src.ondrag = function (e) {
msg.innerHTML = e.target.id;
}
</script>
</body>
</html>



運行效果:


如何實現html元素拖拽功能


3.創建投放區
我們來看投放區相關的事件:dragenter:當拖拽對象進入投放區時觸發;dragover:拖拽對象在投放區內移動時觸發;dragleave:拖拽對象沒有投放到投放區,離開投放區的時候觸發;drop:拖拽對象投放在投放區時觸發。
我們來看一個例子:



代碼如下:


<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
#src > *
{
float: left;
}
#target, #src > img
{
border: thin solid black;
padding: 2px;
margin: 4px;
}
#target
{
height: 123px;
width: 220px;
text-align: center;
display: table;
}
#target > p
{
display: table-cell;
vertical-align: middle;
}
#target > img
{
margin: 1px;
}
img.dragged
{
background-color: lightgrey;
}
</style>
</head>
<body>
<div id="src">
<img draggable="true" id="car1" src="img/1.jpg" alt="car1" />
<img draggable="true" id="car2" src="img/2.jpg" alt="car2" />
<img draggable="true" id="car3" src="img/3.jpg" alt="car3" />
<div id="target">
<p id="msg">
drop here</p>
</div>
</div>
<script>
var src = document.getElementById("src");
var target = document.getElementById("target");
var msg = document.getElementById("msg");
var draggedID;
target.ondragenter = handleDrag;
target.ondragover = handleDrag;
function handleDrag(e) {
e.preventDefault();
}
target.ondrop = function (e) {
var newElem = document.getElementById(draggedID).cloneNode(false);
target.innerHTML = "";
target.appendChild(newElem);
e.preventDefault();
}
src.ondragstart = function (e) {
draggedID = e.target.id;
e.target.classList.add("dragged");
}
src.ondragend = function (e) {
var elems = document.querySelectorAll(".dragged");
for (var i = 0; i < elems.length; i++) {
elems[i].classList.remove("dragged");
}
}
</script>
</body>
</html>



運行結果:


如何實現html元素拖拽功能

如何實現html元素拖拽功能


4.使用DataTransfer
我們使用DataTransfer從拖拽對象向投放區傳遞數據。DataTransfer有下面的屬性和方法:types:返回數據的格式;getData(<format>):返回指定格式數據;setData(<format>, <data>):設置指定格式數據;clearData(<format>):移除指定格式數據;files:返回已經投放的文件數組。 
我們來看下面的例子,他實現的效果和例3一樣:



代碼如下:


<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
#src > *
{
float: left;
}
#src > img
{
border: thin solid black;
padding: 2px;
margin: 4px;
}
#target
{
border: thin solid black;
margin: 4px;
}
#target
{
height: 123px;
width: 220px;
text-align: center;
display: table;
}
#target > p
{
display: table-cell;
vertical-align: middle;
}
img.dragged
{
background-color: Orange;
}
</style>
</head>
<body>
<div id="src">
<img draggable="true" id="car1" src="img/1.jpg" alt="car1" />
<img draggable="true" id="car2" src="img/2.jpg" alt="car2" />
<img draggable="true" id="car3" src="img/3.jpg" alt="car3" />
<div id="target">
<p id="msg">
drop here</p>
</div>
</div>
<script>
var src = document.getElementById("src");
var target = document.getElementById("target");
target.ondragenter = handleDrag;
target.ondragover = handleDrag;
function handleDrag(e) {
e.preventDefault();
}
target.ondrop = function (e) {
var droppedID = e.dataTransfer.getData("Text");
var newElem = document.getElementById(droppedID).cloneNode(false);
target.innerHTML = "";
target.appendChild(newElem);
e.preventDefault();
}
src.ondragstart = function (e) {
e.dataTransfer.setData("Text", e.target.id);
e.target.classList.add("dragged");
}
src.ondragend = function (e) {
var elems = document.querySelectorAll(".dragged");
for (var i = 0; i < elems.length; i++) {
elems[i].classList.remove("dragged");
}
}
</script>
</body>
</html>



5.拖拽文件
html5支持file api,可以讓我們操作本地文件。一般我們不直接使用file api,我們可以結合其他特性一起使用,比如結合拖拽特效,如下例:



代碼如下:


<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
body > *
{
float: left;
}
#target
{
border: medium double black;
margin: 4px;
height: 75px;
width: 200px;
text-align: center;
display: table;
}
#target > p
{
display: table-cell;
vertical-align: middle;
}
table
{
margin: 4px;
border-collapse: collapse;
}
th, td
{
padding: 4px;
}
</style>
</head>
<body>
<div id="target">
<p id="msg">
Drop Files Here</p>
</div>
<table id="data" border="1">
</table>
<script>
var target = document.getElementById("target");
target.ondragenter = handleDrag;
target.ondragover = handleDrag;
function handleDrag(e) {
e.preventDefault();
}
target.ondrop = function (e) {
var files = e.dataTransfer.files;
var tableElem = document.getElementById("data");
tableElem.innerHTML = "<tr><th>Name</th><th>Type</th><th>Size</th></tr>";
for (var i = 0; i < files.length; i++) {
var row = "<tr><td>" + files[i].name + "</td><td>" + files[i].type + "</td><td>" + files[i].size + "</td></tr>";
tableElem.innerHTML += row;
}
e.preventDefault();
}
</script>
</body>
</html>



DataTransfer返回FileList對象,我們可以把他當做file數組對象,file包含下面屬性:name:文件名字;type:文件類型(MIME類型);size:文件大小。
運行效果:


如何實現html元素拖拽功能

如何實現html元素拖拽功能

如何實現html元素拖拽功能


6.上傳文件
下面介紹一個通過拖拽ajax上傳文件的實例。



代碼如下:


<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
<style>
.table
{
display: table;
}
.row
{
display: table-row;
}
.cell
{
display: table-cell;
padding: 5px;
}
.label
{
text-align: right;
}
#target
{
border: medium double black;
margin: 4px;
height: 50px;
width: 200px;
text-align: center;
display: table;
}
#target > p
{
display: table-cell;
vertical-align: middle;
}
</style>
</head>
<body>
<form id="fruitform" method="post" action="/UploadHandler.ashx">
<div class="table">
<div class="row">
<div class="cell label">
Bananas:</div>
<div class="cell">
<input name="bananas" value="2" /></div>
</div>
<div class="row">
<div class="cell label">
Apples:</div>
<div class="cell">
<input name="apples" value="5" /></div>
</div>
<div class="row">
<div class="cell label">
Cherries:</div>
<div class="cell">
<input name="cherries" value="20" /></div>
</div>
<div class="row">
<div class="cell label">
File:</div>
<div class="cell">
<input type="file" name="file" /></div>
</div>
<div class="row">
<div class="cell label">
Total:</div>
<div id="results" class="cell">
items</div>
</div>
</div>
<div id="target">
<p id="msg">
Drop Files Here</p>
</div>
<button id="submit" type="submit">
Submit Form</button>
</form>
<script type="text/javascript">
var target = document.getElementById("target");
var httpRequest;
var fileList;
target.ondragenter = handleDrag;
target.ondragover = handleDrag;
function handleDrag(e) {
e.preventDefault();
}
target.ondrop = function (e) {
fileList = e.dataTransfer.files;
e.preventDefault();
}
document.getElementById("submit").onclick = function handleButtonPress(e) {
e.preventDefault();
var form = document.getElementById("fruitform");
var formData = new FormData(form);
if (fileList) {
for (var i = 0; i < fileList.length; i++) {
formData.append("file" + i, fileList[i]);
}
}
httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = handleResponse;
httpRequest.open("POST", form.action);
httpRequest.send(formData);
}
function handleResponse() {
if (httpRequest.readyState == 4 && httpRequest.status == 200) {
var data = JSON.parse(httpRequest.responseText);
document.getElementById("results").innerHTML = "You ordered " + data.total + " items";
}
}
</script>
</body>
</html>



效果:


如何實現html元素拖拽功能

上面的一些例子不同瀏覽器運行效果可能不同,我用的是chrome瀏覽器,除了例5和6不支持多文件外,其他例子運行正常。大家可以下載demo。
demo下載地址:Html5Guide.draggable.rar

感謝各位的閱讀,以上就是“如何實現html元素拖拽功能”的內容了,經過本文的學習后,相信大家對如何實現html元素拖拽功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯網站建設公司,,小編將為大家推送更多相關知識點的文章,歡迎關注!

文章題目:如何實現html元素拖拽功能-創新互聯
文章來源:http://www.js-pz168.com/article2/dgojoc.html

成都網站建設公司_創新互聯,為您提供軟件開發、品牌網站建設網站營銷、自適應網站、手機網站建設、云服務器

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

商城網站建設
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
亚洲一区二区三区在线观看视频| 制服丝袜亚洲播放| 欧美一区二区黄| 国产精品你懂的| 日韩二区三区在线观看| 丁香一区二区三区| 欧美一区二区影视| 在线成人免费观看| 亚洲色图丝袜美腿| 国产一区激情在线| 精品国产乱码久久久久| 欧美日韩五月天| 国产精品网站在线观看| 美腿丝袜在线亚洲一区| 99国精产品一二二线| 色哟哟国产精品免费观看| 久久伊99综合婷婷久久伊| 午夜精品久久久久| 成人免费视频app| 日韩精品不卡| 精品处破学生在线二十三| 亚洲成av人综合在线观看| 94-欧美-setu| 一本到不卡免费一区二区| 国产色综合一区| 麻豆精品在线看| 国产综合色一区二区三区| 欧美日韩亚州综合| 亚洲色大成网站www久久九九| 国产精品一区不卡| 亚洲精品日韩在线观看| 久久女同互慰一区二区三区| 奇米在线7777在线精品| 国产日韩欧美一区二区三区四区| 欧美人与z0zoxxxx视频| 一区二区三区中文在线观看| av色综合久久天堂av综合| 一本色道久久加勒比精品| 国产精品入口麻豆九色| 国产精品99久久久久久久vr| 五月天久久狠狠| 欧美极品少妇xxxxⅹ高跟鞋 | 久久人人爽爽爽人久久久| 日韩成人午夜电影| 久草一区二区| 精品动漫一区二区三区在线观看 | 亚洲欧美日韩在线综合| 国产三级一区二区| 国产麻豆欧美日韩一区| 亚洲欧洲另类精品久久综合| 中文字幕av一区二区三区高 | 欧美美女视频在线观看| 亚洲综合无码一区二区| 99九九视频| 欧美一级二级三级蜜桃| 日本成人在线看| 欧美一区免费视频| 欧美激情一区在线| 成人av高清在线| 欧美日韩在线综合| 无码av免费一区二区三区试看| 国产一区免费视频| 亚洲精品一线二线三线| 国产在线播放一区三区四| 亚洲一区尤物| 亚洲精品v日韩精品| 不卡一区二区三区视频| 精品欧美乱码久久久久久1区2区| 久久国产夜色精品鲁鲁99| 五月婷婷一区| 亚洲免费观看在线视频| 国产精品日韩一区二区| 欧美精品一区在线观看| 国产精品一区二区久久不卡| 欧美性做爰猛烈叫床潮| 午夜成人在线视频| 日本一区二区免费看| 中文字幕一区二区三区在线不卡 | 国产剧情一区二区三区| 在线观看亚洲成人| 日韩国产高清影视| 亚洲精品一区二区三区蜜桃久| 亚洲伦在线观看| 精品日韩美女| 国产精品国产成人国产三级 | 久久久99精品久久| 不卡电影一区二区三区| 日韩无一区二区| 国产成人在线观看| 欧美精品乱码久久久久久| 另类小说色综合网站| 日本高清不卡在线观看| 日韩av电影天堂| 色综合久久久网| 日韩成人av影视| 色一区在线观看| 日本成人中文字幕在线视频| 色综合天天狠狠| 日韩精品视频网| 色诱亚洲精品久久久久久| 日韩中文字幕91| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲婷婷在线视频| 精品视频一区在线| 亚洲特级片在线| 麻豆亚洲一区| 亚洲综合在线视频| 色狠狠久久av五月综合| 亚洲va欧美va人人爽| 这里只有精品66| 蜜桃视频在线观看一区| 欧美日韩国产区一| 国产成a人亚洲精| 精品欧美一区二区久久| 3d动漫啪啪精品一区二区免费| www激情久久| 99在线视频免费观看| 中文字幕中文字幕在线一区| 久久综合中文色婷婷| 亚洲综合激情另类小说区| 亚洲欧美影院| 美女免费视频一区二区| 欧美精品三级在线观看| 岛国精品在线播放| 久久久久九九视频| 狠狠色狠狠色综合人人| 亚洲最大的成人av| 91福利视频网站| 国产精品一级二级三级| 26uuuu精品一区二区| 国内一区二区在线视频观看 | 久久99精品国产一区二区三区 | 久久精品日产第一区二区三区精品版 | 99视频精品免费视频| 国产日韩影视精品| 欧美精品一区二区视频| 肉丝袜脚交视频一区二区| 欧美色图免费看| 不卡的av电影在线观看| 国产精品美日韩| 日韩欧美在线观看强乱免费| 美女视频第一区二区三区免费观看网站| 7777精品久久久大香线蕉| 96av麻豆蜜桃一区二区| 亚洲精品免费在线观看| 色综合天天做天天爱| 国产精品18久久久久| 久久精品一区二区| 日本亚洲欧洲精品| 国内精品国产三级国产a久久| 精品剧情在线观看| 久久av一区二区三区漫画| 日韩综合小视频| 日韩一区二区三区av| 国产成人一区二区三区免费看| 亚洲综合另类小说| 欧美日韩国产综合视频在线观看| 99久久99久久精品免费观看| 亚洲视频电影在线| 欧美网站一区二区| 99理论电影网| 亚洲第一二三四区| 91精品国产综合久久久久久| 国产成人免费观看| 日韩国产欧美在线视频| 精品久久久久久无| 秋霞久久久久久一区二区| 激情文学综合丁香| 国产欧美一区视频| 在线电影看在线一区二区三区| 丁香天五香天堂综合| 国产精品国产三级国产aⅴ无密码| 色综合久久88色综合天天6| jlzzjlzz亚洲日本少妇| 亚洲影院理伦片| 日韩一区二区免费在线电影 | 国产精品欧美一区二区三区| 在线观看成人av| 91亚洲永久精品| 午夜精彩视频在线观看不卡| 精品国产伦一区二区三区观看体验 | 国产成人综合自拍| 亚洲人一二三区| 欧美精品色综合| 欧美激情第一页在线观看| 国内精品伊人久久久久av影院| 国产精品久久久久桃色tv| 欧美性猛片aaaaaaa做受| 国产精品一区二区三区不卡| 麻豆91精品视频| 中文字幕亚洲欧美在线不卡| 欧美色国产精品| 精品一区二区三区免费毛片| 韩国av一区二区三区| 日韩久久一区二区| 欧美福利一区二区| 免费亚洲一区二区| 高清免费成人av| 亚洲成人动漫在线免费观看| 久久久久久久久久久久久女国产乱|