这两天没什么心情,进步不大,心虚。刚搞了个简单的拖拽,试了下,IE 8.0, Firefox都可以
var drag = { enable : function(domIdStr){ var dom = document.getElementById(domIdStr); var diffX = 0, diffY = 0, draging = false; dom.style.position = 'absolute'; dom.style.visibility = 'visible'; dom.style.width = '200px'; dom.style.height = '100px'; dom.style.backgroundColor = 'teal'; dom.onmousedown = function(e){ e = e || window.event; draging = true; dom.style.cursor = 'move'; diffX = e.clientX - dom.offsetLeft; diffY = e.clientY - dom.offsetTop; if(dom.setCapture){ dom.setCapture(); } dom.onmousemove = function(e){ e = e || window.event; if(draging){ dom.style.left = (e.clientX - diffX) + 'px'; dom.style.top = (e.clientY - diffY) + 'px'; } }; dom.onmouseup = function(e){ e = e || window.event; if(dom.releaseCapture){ dom.releaseCapture(); } draging = false; dom.style.cursor = 'default'; dom.onmousemove = null; dom.onmouseup = null; }; }; } };
稍作修改,再出个1.1版本,就不发新的blog了
var drag = { enable : function(domIdStr, titleDomIdStr){ var dom = document.getElementById(domIdStr); var title = document.getElementById(titleDomIdStr); var diffX = 0, diffY = 0, draging = false; dom.style.position = 'absolute'; dom.style.visibility = 'visible'; dom.style.width = '200px'; dom.style.height = '100px'; dom.style.backgroundColor = 'teal'; title.onmousedown = function(e){ e = e || window.event; draging = true; title.style.cursor = 'move'; title.style.margin = 0; title.style.border = '1px solid yellow'; diffX = e.clientX - dom.offsetLeft; diffY = e.clientY - dom.offsetTop; if(title.setCapture){ title.setCapture(); } title.onmousemove = function(e){ e = e || window.event; if(draging){ dom.style.left = (e.clientX - diffX) + 'px'; dom.style.top = (e.clientY - diffY) + 'px'; } }; title.onmouseup = function(e){ e = e || window.event; if(title.releaseCapture){ title.releaseCapture(); } draging = false; title.style.cursor = 'default'; title.onmousemove = null; title.onmouseup = null; }; }; } };