HTML5拖放实现逻辑及代码讲解
导读:收集整理的这篇文章主要介绍了html5教程-HTML5拖放实现逻辑及代码讲解,觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 1.拖放实现逻辑 开始...
收集整理的这篇文章主要介绍了html5教程-HTML5拖放实现逻辑及代码讲解,觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 1.拖放实现逻辑
开始拖动 ===> 拖动中 ===> 拖动结束(放手)
onDragstart ===> ondragover ===> ondrop
ondragstart 绑定在需要被拖动的dom上
ondragover和ondrop绑定在接受被拖动dom进入的dom上
2.实例
单个dom的拖动
!DOCTYPE htML>
html>
head>
tITle>
drag/title>
style type="text/css">
.wrapper{
width: 400px;
height: 200px;
padding: 10px;
border: 1px solid red;
}
.wrapper img{
width: 100%;
height: 100%;
}
/style>
/head>
body>
p class="wrapper" ondragover="dragOver(event)" ondrop="dragDrop(event)">
img id="dragImg" src="./login.jpg" draggable="true" ondragstart="dragStart(event)">
/p>
p class="wrapper" ondragover="dragOver(event)" ondrop="dragDrop(event)">
/p>
/body>
script type="text/javascript">
function dragStart (event) {
event.datatransfer.setData('Text', event.target.id);
}
function dragOver(event) {
event.preventDefault();
}
function dragDrop(event) {
event.PReventDefault();
VAR data = event.dataTransfer.getData('Text');
event.target.appendChild(document.querySelector('#'+data));
}
/script>
/html>
多个dom的拖动
!DOCTYPE html>
html>
head>
meta charset="utf-8">
title>
dragList/title>
style type="text/css">
#left{
float: left;
border: 1px solid red;
}
#right{
float: right;
border: 1px solid blue;
}
#left,#right{
width: 300px;
min-height: 400px;
}
.images img{
max-width: 260px;
max-height: 300px;
}
/style>
/head>
body>
ul id="left">
li id="img1" class="images" draggable="true">
img src="LOGin.jpg">
/li>
li id="img2" class="images" draggable="true">
img src="loginu.png">
/li>
li id="img3" class="images" draggable="true">
img src="反馈.png">
/li>
/ul>
ul id="right">
li id="img4" class="images" draggable="true">
img src="日落.png">
/li>
li id="img5" class="images" draggable="true">
img src="等待.png">
/li>
li id="img6" class="images" draggable="true">
img src="规则.png">
/li>
/ul>
/body>
script type="text/javascript">
window.onload = function () {
function myPreventDefault(event) {
if(event.preventDefault) {
event.preventDefault();
}
else {
event.returnValue = false;
}
}
function myDragOver (event) {
myPreventDefault(event);
}
function myDragDrop (event) {
myPreventDefault(event);
var data = event.dataTransfer.getData('Text');
console.log(data);
event.target.appendChild(document.getElementById(data));
}
function myDragStart(event) {
event.dataTransfer.setData('Text', event.target.id);
}
var nodelist = document.querySelectorAll('.images');
for (var i = 0;
i nodeList.length;
i++) {
nodeList[i].addEventListener('dragstart',myDragStart);
}
document.getElementById('right').addEventListener('dragover', myDragOver);
document.getElementById('right').addEventListener('drop', myDragDrop);
document.getElementById('left').addEventListener('dragover', myDragOver);
document.getElementById('left').addEventListener('drop', myDragDrop);
}
/script>
/html>
1.拖放实现逻辑
开始拖动 ===> 拖动中 ===> 拖动结束(放手)
ondragstart ===> ondragover ===> ondrop
ondragstart 绑定在需要被拖动的dom上
ondragover和ondrop绑定在接受被拖动dom进入的dom上
2.实例
单个dom的拖动
!DOCTYPE html>
html>
head>
title>
drag/title>
style type="text/css">
.wrapper{
width: 400px;
height: 200px;
padding: 10px;
border: 1px solid red;
}
.wrapper img{
width: 100%;
height: 100%;
}
/style>
/head>
body>
p class="wrapper" ondragover="dragOver(event)" ondrop="dragDrop(event)">
img id="dragImg" src="./login.jpg" draggable="true" ondragstart="dragStart(event)">
/p>
p class="wrapper" ondragover="dragOver(event)" ondrop="dragDrop(event)">
/p>
/body>
script type="text/javascript">
function dragStart (event) {
event.dataTransfer.setData('Text', event.target.id);
}
function dragOver(event) {
event.preventDefault();
}
function dragDrop(event) {
event.preventDefault();
var data = event.dataTransfer.getData('Text');
event.target.appendChild(document.querySelector('#'+data));
}
/script>
/html>
多个dom的拖动
!DOCTYPE html>
html>
head>
meta charset="utf-8">
title>
dragList/title>
style type="text/css">
#left{
float: left;
border: 1px solid red;
}
#right{
float: right;
border: 1px solid blue;
}
#left,#right{
width: 300px;
min-height: 400px;
}
.images img{
max-width: 260px;
max-height: 300px;
}
/style>
/head>
body>
ul id="left">
li id="img1" class="images" draggable="true">
img src="login.jpg">
/li>
li id="img2" class="images" draggable="true">
img src="loginu.png">
/li>
li id="img3" class="images" draggable="true">
img src="反馈.png">
/li>
/ul>
ul id="right">
li id="img4" class="images" draggable="true">
img src="日落.png">
/li>
li id="img5" class="images" draggable="true">
img src="等待.png">
/li>
li id="img6" class="images" draggable="true">
img src="规则.png">
/li>
/ul>
/body>
script type="text/javascript">
window.onload = function () {
function myPreventDefault(event) {
if(event.preventDefault) {
event.preventDefault();
}
else {
event.returnValue = false;
}
}
function myDragOver (event) {
myPreventDefault(event);
}
function myDragDrop (event) {
myPreventDefault(event);
var data = event.dataTransfer.getData('Text');
console.log(data);
event.target.appendChild(document.getElementById(data));
}
function myDragStart(event) {
event.dataTransfer.setData('Text', event.target.id);
}
var nodeList = document.querySelectorAll('.images');
for (var i = 0;
i nodeList.length;
i++) {
nodeList[i].addEventListener('dragstart',myDragStart);
}
document.getElementById('right').addEventListener('dragover', myDragOver);
document.getElementById('right').addEventListener('drop', myDragDrop);
document.getElementById('left').addEventListener('dragover', myDragOver);
document.getElementById('left').addEventListener('drop', myDragDrop);
}
/script>
/html>
觉得可用,就经常来吧! 欢迎评论哦! html5教程,巧夺天工,精雕玉琢。小宝典献丑了!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: HTML5拖放实现逻辑及代码讲解
本文地址: https://pptw.com/jishu/587126.html
