H5拖拽接口

在h5中,如果想拖拽元素,就必须为元素添加draggable=“true”. 图片和超链接默认就可以拖拽

  <p id="pe" draggable="true">试着把我拖过去</p>

/学习拖拽,主要就是学习拖拽事件/
/*应用于被拖拽元素的事件
ondrag 应用于拖拽元素,整个拖拽过程都会调用–持续
ondragstart 应用于拖拽元素,当拖拽开始时调用
ondragleave 应用于拖拽元素,当鼠标离开拖拽元素时调用
ondragend 应用于拖拽元素,当拖拽结束时调用
/
/*应用于目标元素的事件
ondragenter 应用于目标元素,当拖拽元素进入时调用
ondragover 应用于目标元素,当停留在目标元素上时调用
ondrop 应用于目标元素,当在目标元素上松开鼠标时调用
ondragleave 应用于目标元素,当鼠标离开目标元素时调用
/
案例:
效果展示
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>拖拽</title>
	<style>
		#box1,#box2,#box3 {
			width: 200px;
			height: 200px;
			border:1px solid red;
			float: left;
			margin-right: 20px;
		}
		p {
			background: orange;
			margin: 0;
			margin-bottom:10px;
		}
	</style>
</head>
<body>
	<div id="box1">
	<!--在h5中,如果想拖拽元素,就必须为元素添加draggable="true". 图片和超链接默认就可以拖拽-->
		<p id="p1" draggable="true">试着把我拖拽</p>
		<p id="p2" draggable="true">试着把也我拖拽</p>
	</div>
	<div id="box2"></div>
	<div id="box3"></div>
	<script>
	//改代码控制台可能较乱,无需要部分请自行注释
	document.ondragstart = function(e){
		/*通过事件捕获来获取当前被拖拽的子元素*/
 		/*通过dataTransfer来实现数据的存储与获取
        * setData(format,data):
        * format:数据的类型:text/html   text/uri-list
        * Data:数据:一般来说是字符串值*/
        //e.target 获取当前拖拽的元素
		console.log('a拖拽开始');
		console.log(e.target);
		e.dataTransfer.setData('text/html',e.target.id);
	}
	document.ondrag = function(){
		// console.log('a拖拽持续中');
	} 
	document.ondragleave = function(){
		console.log('a拖拽离开当前元素');
	}
	document.ondragend  = function(){
		console.log('a鼠标松开拖拽结束');
	}

	document.ondragenter = function(){
		console.log('b拖拽进入目标元素');
	}
	document.ondragover = function(e){
		// console.log('b拖拽进入目标元素持续中');
		/*如果想触发ondrop事件,那么就必须在这个位置阻止浏览器的默认行为*/
		/*浏览器默认会阻止ondrop事件:我们必须在ondragover中阻止浏览器的默认行为*/

		e.preventDefault();
	}
	document.ondrop = function(e){
		console.log('b鼠标在目标元素松开发生');
		/*通过e.dataTransfer.setData存储的数据,只能在drop事件中获取*/
		var id = e.dataTransfer.getData('text/html');
		e.target.appendChild(document.getElementById(id));//document.getElementById(id)不加引号
	}
	document.ondragleave = function(){
		console.log('b离开目标元素');
	}
	</script>
</body>
</html>

本文属个人学习整理记载

猜你喜欢

转载自blog.csdn.net/qq_43537987/article/details/89386239
今日推荐