我们要想拖动就要设置元素可以拖动:draggable属性有false和true两个值当值为true元素就是可以拖动的
<img src="img/flower.jpg" draggable="true">
-
ondragstart:该事件表示拖动开始
-
ondragover:该事件表示拖动结束
-
ondrog:该事件表示拖放过程
-
dataTransfer.getData():方法设置被拖数据的数据类型和值
-
preventDefault():允许其他元素拖到此处
-
appendChild将一个标签添加到另一个标签中,可以使用appendChild
1.实现一个图片在外面被拖到方框里面
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
#result {
width: 220px;
height: 260px;
border: 1px solid red;
}
</style>
<body>
<p>将下面图片拖动框中</p>
<!--
ondragstart:该事件表示拖动开始
ondragover:该事件表示拖动结束
ondrog:该事件表示拖放过程
-->
<div id="result" ondragover="allowDrag(event)" ondrop="drop(event)">
</div>
<img id="id" src="img/flower.jpg" alt="" draggable="true" ondragstart="drag(event)">
<!--draggable:值为true是表示元素可拖动,默认为false,表示不能拖动 -->
<script type="text/javascript">
//拖动已开始
function drag(ev) {
ev.dataTransfer.setData("Text", ev.target.id);
}
// 拖动过程
function drop(ev) {
//允许其他元素拖到此处
ev.preventDefault();
// 获取要拖放的元素的id
var id = ev.dataTransfer.getData("Text");
// 将一个标签添加到另一个标签中,可以使用appendChild
ev.target.appendChild(document.getElementById(id));
}
// 拖动结束
function allowDrag(ev) {
//允许其他元素拖到此处
ev.preventDefault()
}
</script>
</body>
</html>
效果

2.我们在实现两个方框中的拖拽
两个方框我们只需要在加一个div把图片放到想要默认的div中即可
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
#result {
width: 220px;
height: 260px;
border: 1px solid red;
float: left;
}
#result1 {
float: left;
width: 220px;
height: 260px;
margin-left: 20px;
border: 1px solid red;
}
</style>
<body>
<p>图片拖拽</p>
<!--
ondragstart:该事件表示拖动开始
ondragover:该事件表示拖动结束
ondrog:该事件表示拖放过程
-->
<div id="result" ondragover="allowDrag(event)" ondrop="drop(event)">
<img id="id" src="img/flower.jpg" alt="" draggable="true" ondragstart="drag(event)">
</div>
<div id="result1" ondragover="allowDrag(event)" ondrop="drop(event)"></div>
<!--draggable:值为true是表示元素可拖动,默认为false,表示不能拖动 -->
<script type="text/javascript">
//拖动已开始
function drag(ev) {
ev.dataTransfer.setData("Text", ev.target.id);
}
// 拖动过程
function drop(ev) {
//允许其他元素拖到此处
ev.preventDefault();
// 获取要拖放的元素的id
var id = ev.dataTransfer.getData("Text");
// 将一个标签添加到另一个标签中,可以使用appendChild
ev.target.appendChild(document.getElementById(id));
}
// 拖动结束
function allowDrag(ev) {
//允许其他元素拖到此处
ev.preventDefault()
}
</script>
</body>
</html>
效果:

本文介绍了如何利用JavaScript的draggable属性以及ondragstart、ondragover、ondrop等事件来实现图片的拖放操作。通过设置元素的draggable属性为true,可以开启拖放功能。在拖放过程中,使用dataTransfer.getData()获取拖放数据,通过preventDefault()允许拖放,并使用appendChild()方法将图片添加到目标位置。示例包括将图片从外部拖入方框以及在两个方框间进行拖放。

被折叠的 条评论
为什么被折叠?



