首页 > 代码库 > javascript拖动div
javascript拖动div
div拖动代码,在用此代码之前,你可能需要将你需要拖动的元素style设置position: absolute;
#textareaSavaDiv{
position: absolute;
right:50px;
width:300px;
height:300px;
}
html
<div id="textareaSavaDiv">
<input type="text" id="username"/></div>
纯JS拖动div代码
<script> 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; e.layerX = e.offsetX; e.layerY = e.offsetY; } return e; } };window.onload = function() { var obj = document.getElementById(‘textareaSavaDiv‘); rDrag.init(obj);};</script>
以上代码就可以实现拖动div的效果
但是,如果你的div里面有输入框或者需要操作的元素的时候,就会无法输入或者无效果原因是你使用了移动层,因为层的覆盖,把输入框给挡住了
想要实现可以div里面元素有效需要js获取焦点
在拖动的时候让输入框ID获取焦点
window.onload = function() { var obj = document.getElementById(‘textareaSavaDiv‘);
document.getElementById("username").focus();
rDrag.init(obj);
};
javascript拖动div
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。