HTML5笔记——拖拽
一、拖拽元素
页面中设置了 draggable="true"
属性的元素。
draggable 属性用来定义元素是否可以拖动
该属性有 true
、false
两个值,默认是false
属性是true
时可以拖动,反之不能
要想真正实现拖动功能,必须与JavaScript
结合使用。
拖拽元素的事件监听:(应用于拖拽元素)
-
ondragstart
当拖拽开始时调用 -
ondragleave
当鼠标离开拖拽元素时调用 -
ondragend
当拖拽结束时调用 -
ondrag
整个拖拽过程都会调用
-
-
<html>
-
<head lang="en">
-
<meta charset="UTF-8">
-
<title></title>
-
<style>
-
.box {
-
width: 200px;
-
height: 200px;
-
background-color: green;
-
}
-
</style>
-
</head>
-
<body>
-
<div class="box" draggable="true"></div>
-
-
<script>
-
var box = document.querySelector('.box');
-
-
// 绑定拖拽事件
-
-
// 拖拽开始
-
box.ondragstart = function () {
-
console.log('拖拽开始.');
-
}
-
-
// 拖拽离开:鼠标拖拽时离开被拖拽的元素时触发
-
box.ondragleave = function () {
-
console.log('拖拽离开..');
-
}
-
-
// 拖拽结束
-
box.ondragend = function () {
-
console.log('拖拽结束...');
-
console.log("---------------");
-
}
-
-
box.ondrag = function () {
-
console.log('拖拽');
-
}
-
-
</script>
-
</body>
-
</html>
二、目标元素
比如说,你想把元素A拖拽到元素B里,那么元素B就是目标元素。
页面中任何一个元素都可以成为目标元素。
目标元素的事件监听:(应用于目标元素)
-
ondragenter
当拖拽元素进入时调用 -
ondragover
当拖拽元素停留在目标元素上时,就会连续一直触发(不管拖拽元素此时是移动还是不动的状态) -
ondrop
当在目标元素上松开鼠标时调用 -
ondragleave
当鼠标离开目标元素时调用
-
-
<html>
-
<head lang="en">
-
<meta charset="UTF-8">
-
<title></title>
-
<style>
-
.one {
-
width: 100px;
-
height: 100px;
-
border: 1px solid #000;
-
background-color: green;
-
}
-
-
.two {
-
position: relative;
-
width: 200px;
-
height: 200px;
-
left: 300px;
-
top: 100px;
-
border: 1px solid #000;
-
background-color: red;
-
}
-
</style>
-
</head>
-
<body>
-
<div class="one" draggable="true"></div>
-
<div class="two"></div>
-
-
<script>
-
var two = document.querySelector('.two');
-
-
//目标元素的拖拽事件
-
-
// 当被拖拽元素进入时触发
-
two.ondragenter = function () {
-
console.log("来了.");
-
}
-
-
// 当被拖拽元素离开时触发
-
two.ondragleave = function () {
-
-
console.log("走了..");
-
}
-
-
// 当拖拽元素在 目标元素上时,连续触发
-
two.ondragover = function (e) {
-
//阻止拖拽事件的默认行为
-
e.preventDefault(); //【重要】一定要加这一行代码,否则,后面的方法 ondrop() 无法触发。
-
-
console.log("over...");
-
}
-
-
// 当在目标元素上松开鼠标是触发
-
two.ondrop = function () {
-
console.log("松开鼠标了....");
-
}
-
</script>
-
</body>
-
</html>
注意:如果想让拖拽元素在目标元素里做点事情,就必须要在 ondragover()
里加event.preventDefault()
这一行代码。
三、拖拽练习
-
-
<html>
-
<head lang="en">
-
<meta charset="UTF-8">
-
<title></title>
-
<style>
-
.one {
-
width: 400px;
-
height: 400px;
-
border: 1px solid #000;
-
}
-
-
.one > div, .two > div {
-
width: 98px;
-
height: 98px;
-
border: 1px solid #000;
-
border-radius: 50%;
-
background-color: red;
-
float: left;
-
text-align: center;
-
line-height: 98px;
-
}
-
-
.two {
-
width: 400px;
-
height: 400px;
-
border: 1px solid #000;
-
position: absolute;
-
left: 600px;
-
top: 200px;
-
}
-
</style>
-
</head>
-
<body>
-
<div class="one">
-
<div draggable="true">1</div>
-
<div draggable="true">2</div>
-
<div draggable="true">3</div>
-
<div draggable="true">4</div>
-
<div draggable="true">5</div>
-
<div draggable="true">6</div>
-
<div draggable="true">7</div>
-
<div draggable="true">8</div>
-
</div>
-
<div class="two"></div>
-
-
<script>
-
var boxs = document.querySelectorAll('.one div');
-
// 临时的盒子 用于存放当前拖拽的元素
-
-
var two = document.querySelector('.two');
-
-
var temp = null;
-
// 给8个小盒子分别绑定拖拽事件
-
for (var i = 0; i < boxs.length; i ) {
-
boxs[i].ondragstart = function () {
-
// 保持当前拖拽的元素
-
temp = this;
-
console.log(temp);
-
}
-
-
boxs[i].ondragend = function () {
-
// 当拖拽结束 ,清空temp
-
temp = null;
-
console.log(temp);
-
}
-
}
-
-
// 目标元素的拖拽事件
-
two.ondragover = function (e) {
-
// 阻止拖拽的默认行为
-
e.preventDefault();
-
}
-
// 当在目标元素上松开鼠标是触发
-
two.ondrop = function () {
-
// 将拖拽的元素追加到 two里面来
-
this.appendChild(temp);
-
}
-
</script>
-
</body>
-
</html>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfiaaja
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24