首页> 基础笔记 >JS/JQ基础学习 >经典案例 经典案例

JavaScript实例:实现拖拽元素功能

作者:小萝卜 2023-03-22 浏览 203

简介JavaScript实例:实现拖拽元素特效

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>拖动div</title>
	<style type="text/css">
		*{margin:0px;padding:0px;}
		#move{width:200px;height:200px;background:orange;position:absolute;}
	</style>
</head>
<body>
	<div id="move" ></div>
	<script type="text/javascript">
	//声明全局变量
	var x = 0;
	var y = 0;
	var _left = 0;
	var _top = 0;
	var isDown = false;//检测当前鼠标是否按下

	//获取元素
	var move = document.getElementById('move');

	//鼠标按下事件
	move.onmousedown = function(e){
		//鼠标的偏移量
		x = e.clientX;
		y = e.clientY;
		//获取当前div的偏移量
		_left = move.offsetLeft;
		_top = move.offsetTop;
		//修改检测变量的值
		isDown = true;
		//修改鼠标样式
		move.style.cursor = "move";
		move.style.background = "red";
	}

	//鼠标移动事件
	window.onmousemove = function(e){
		//判断检测变量
		if(!isDown) return;

		//获得鼠标移动之后的偏移
		var newX = e.clientX;
		var newY = e.clientY;
		//计算新的left和top属性
		var newLeft = newX - (x-_left);
		var newTop = newY-(y-_top); 
		//设置css样式 新的top和left样式
		move.style.left = newLeft + 'px';
		move.style.top = newTop + 'px';

	}

	//鼠标的抬起事件
	move.onmouseup = function(){
		//修改检测变量的值
		isDown = false;
		//修改鼠标样式
		move.style.cursor = "default";
		move.style.background = "orange";

	}

	//作业:  div拖动和键盘按键一起移动div
	</script>

</body>
</html>

很赞哦! (0)

文章评论

    高端网站建设