JavaScript:页面内拖拽方框
知识点:
- position:absolute
- clientX clientY
- offsetWidth clientWidth
- onmousedown onmouseup onmousemove
<!DOCTYPE html>
<html>
<head>
<title>拖拽</title>
<style type="text/css">
#div1{ height: 200px; width: 200px; background-color: red; position: absolute; }
</style>
<script type="text/javascript">
window.onload = function(){
var oDiv = document.getElementById('div1');
var disX = 0;
var disY = 0;
oDiv.onmousedown = function(ev){
disX = ev.clientX - oDiv.offsetLeft;
disY = ev.clientY - oDiv.offsetTop;
document.onmousemove = function(ev){
var l = ev.clientX - disX;
var t = ev.clientY - disY;
if (l<0) {
l = 0;
} else if(l>document.documentElement.clientWidth-oDiv.offsetWidth){
l = document.documentElement.clientWidth-oDiv.offsetWidth;
}//div块不超出左右两边,document.documentElement.clientWidth是整个document页面可视区的宽度
if (t<0) {
t = 0;
} else if(t>document.documentElement.clientHeight-oDiv.offsetHeight){
t = document.documentElement.clientHeight-oDiv.offsetHeight;
}//div块不超出上下两边,document.documentElement.clientWidth是整个document页面可视区的高度
oDiv.style.left = l + 'px';
oDiv.style.top = t + 'px';
};
document.onmouseup = function(){
document.onmousemove = null;
document.onmouseup = null;
};
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>

浙公网安备 33010602011771号