js 拖拽
<!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>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style>
#draw {
width: 450px;
height: 450px;
border: 2px solid #ccc;
position: relative;
top: 10px;
left: 10px;
cursor: pointer;
}
.content {
background-color: chartreuse;
width: 400px;
height: 400px;
overflow: scroll;
}
</style>
</head>
<body>
<div style="width: 200px;height: 200px;overflow: scroll;">
<div class="content" id="draw">
<!-- <div id="draw"></div> -->
<table>
<thead>
<tr>
<td>第1列</td>
<td>第2列</td>
<td>第3列</td>
<td>第4列</td>
<td>第5列</td>
<td>第6列</td>
<td>第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>第10列</td>
</tr>
</thead>
<tbody>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
<tr>
<td>rows第1列</td>
<td>rows第2列</td>
<td>rows第3列</td>
<td>rows第4列</td>
<td>rows第5列</td>
<td>rows第6列</td>
<td>rows第7列</td>
<td>
<input type="text">
</td>
<td><select name="" id="">
<option value="1">测试1</option>
<option value="1">测试2</option>
</select></td>
<td>rows第10列</td>
</tr>
</tbody>
</table>
</div>
</div>
<script>
var oDiv = document.getElementById("draw");
var x, y, xw, yw;
oDiv.onmousedown = function (ev) {
e = event || ev;
x = e.clientX;
y = e.clientY;
xw = y - oDiv.offsetTop; // 初始y点距上边框的距离
yw = x - oDiv.offsetLeft; //初始x点距左边框的距离
console.log("onmousedown:" + "x:" + x + ",y:" + y + ",xw:" + xw + ",xy")
document.onmousemove = function (ev) {
e = event || ev;
// console.dir(oDiv.offsetLeft + "," + oDiv.offsetTop)
if (e.clientY <= 0 && e.clientX > 0) {
oDiv.style.left = e.clientX - yw + "px";
oDiv.style.top = "0px";
} else if (e.clientY > 0 && e.clientX <= 0) {
oDiv.style.left = "0px";
oDiv.style.top = e.clientY - xw + "px";
} else {
oDiv.style.left = e.clientX - yw + "px";
oDiv.style.top = e.clientY - xw + "px";
}
};
}
document.onmouseup = function (event) {
e = event || ev;
// console.dir("up:" + oDiv.offsetLeft + "," + oDiv.offsetTop + "---xw:" + xw + ",xy:" + yw)
// console.log("s_left:" + oDiv.style.left + ",s_top:" + oDiv.style.top);
// oDiv.style.left = oDiv.style.left > 0 ? oDiv.style.left : 0;
// oDiv.style.top = oDiv.style.top > 0 ? oDiv.style.top : 0;
document.onmousemove = null;
};
</script>
</body>
</html>
浙公网安备 33010602011771号