<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#box1{
width: 100px;
height: 100px;
background-color: red;
position: absolute;
}
#box2{
width: 100px;
height: 100px;
background-color: yellow;
position: absolute;
left: 200px;
top:200px;
}
</style>
<script type="text/javascript">
window.onload = function(){
/*
* 拖拽box1的元素
* - 拖拽的流程
* 1.当鼠标在被拖拽的元素上按下时开始拖拽 onmousedown
* 2.当鼠标移动时被拖拽的元素跟随鼠标移动 onmousemove
* 3.当鼠标松开时被拖拽的对象固定到当前位置 onmouseup
*/
//获取box1
var box1 = document.getElementById("box1")
//为box1绑定一个鼠标按下的事件
box1.onmousedown = function(event){
event = event ||window.event
//div的偏移量,鼠标.clientX-元素.offsetLeft
//div的偏移量,鼠标.clientY-元素.offsetTop
var ol = event.clientX - box1.offsetLeft;
var ot = event.clientY - box1.offsetTop;
// alert(“鼠标按下开始拖拽”)
//为document绑定一个onmousemove事件
document.onmousemove = function(event){
event = event ||window.event
//当鼠标移动时被拖拽的元素跟随鼠标移动 onmousemove
//获取鼠标的坐标
var left = event.clientX-ol;
var top = event.clientY-ot;
//修改box1的位置
box1.style.left = left+"px";
box1.style.top = top+"px";
};
//为元素绑定一个鼠标松开事件
document.onmouseup = function(){
//当鼠标松开时,被拖拽元素固定在当前位置 onmouseup
//取消document的onmousemove事件
document.onmousemove = null;
document.onmouseup = null;
};
/*
* 当我们拖拽一个网页的内容时,浏览器会默认去搜索引擎中搜索内容
* 此时会导致拖拽功能的异常,这是浏览器提供的默认行为
* 如果不希望发生这个行为,则可以通过return false来取消默认行为
*
* 但是这招对IE8不起作用
*/
return false;
};
};
</script>
</head>
<body>
我是一段文字
<div id="box1">
</div>
<div id="box2">
</div>
</body>
</html>
在网页中的效果