1. 程式人生 > >實現具有吸附性的拖拽效果-高階拖拽(相容)

實現具有吸附性的拖拽效果-高階拖拽(相容)

1.body裡面有Div和一段文字

<body>
	這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字
	<div id=“div1”>盒子裡面的文字盒子裡面的文字盒子裡面的文字盒子裡面的文字盒子裡面的文字</div>
	這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字
</body>

2.給Div設定一些css樣式

<style type="text/css">
	div{
		top:0;left: 0;
		width: 100px;height: 100px;
		position
: absolute; background: red; padding: 1px; line-height: 20px; word-break: break-all; word-wrap:break-word; cursor: pointer; border-radius: 10px; box-shadow: 1px 1px 1px #ccc; } </style>

3.給Div新增js效果(重要)

<script>
	window.onload =function(){
		var oDiv =document.getElementById
('div1'); oDiv.onmousedown =function(ev){ var oEvent =ev||event; var disX =oEvent.clientX -oDiv.offsetLeft; var disY =oEvent.clientY -oDiv.offsetTop; if(oDiv.setCapture){ oDiv.onmousemove =mouseMove; oDiv.onmouseup =mouseUp; oDiv.setCapture(); }else{ document.
onmousemove =mouseMove; document.onmouseup =mouseUp; } function mouseMove(ev){ var oEvent =ev||event; var l =oEvent.clientX -disX; var t =oEvent.clientY -disY; var rightLine = document.documentElement.clientWidth-oDiv.offsetWidth; var bottomLine = document.documentElement.clientHeight-oDiv.offsetHeight; if(l <50){ l =0; }else if(l >rightLine-50){ l = rightLine; } if(t <50){ t =0; }else if(t >bottomLine-50){ t =bottomLine; } oDiv.style.cursor ="move"; oDiv.style.left =l+'px'; oDiv.style.top =t+'px'; }; function mouseUp(){ this.onmousemove =null; this.onmouseup =null; oDiv.style.cursor ="pointer"; if(oDiv.releaseCapture){ oDiv.releaseCapture(); } }; return false; }; } </script>