创建鼠标可以拖动的DIV
来源:互联网 发布:女装品牌推荐 知乎 编辑:程序博客网 时间:2024/05/18 01:28
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>自由拖动的DIV层方块</title> <meta http-equiv="content-type" content="text/html;charset=gb2312" /> <style type="text/css"> #draggable { background-color: green; font-size: 9pt; padding: 30px; color: white; width: 360px; height: 324px; position: absolute; } </style> <script type="text/javascript"> var rDrag = { o: null, init: function(o) { o.onmousedown = this.start; }, start: function(e) { var o; e = rDrag.fixEvent(e); //取消浏览器的默认行为 e.preventDefault && e.preventDefault(); rDrag.o = o = this; o.x = e.clientX - rDrag.o.offsetLeft; o.y = e.clientY - rDrag.o.offsetTop; document.onmousemove = rDrag.move; document.onmouseup = rDrag.end; }, move: function(e) { e = rDrag.fixEvent(e); var oLeft, oTop; oLeft = e.clientX - rDrag.o.x; oTop = e.clientY - rDrag.o.y; rDrag.o.style.left = oLeft + 'px'; rDrag.o.style.top = oTop + 'px'; }, end: function(e) { e = rDrag.fixEvent(e); rDrag.o = document.onmousemove = document.onmouseup = null; }, fixEvent: function(e) { if (!e) { e = window.event; e.target = e.srcElement; //FF的layer是相对于元素的左上角 e.layerX = e.offsetX; e.layerY = e.offsetY; } return e; } } window.onload = function() { var obj = document.getElementById('draggable'); rDrag.init(obj); } </script></head><body> <div id="draggable"> 这个可以拖动! <div style="background-color: blue; height: 300px;"> </div> </div></body></html>