javascript实现可拖动DIV层
2017-07-12 00:05
411 查看
原文发布时间为:2009-05-04 —— 来源于本人的百度文章 [由搬家工具导入]
注意以下红色部分是关键.如果不使用 document.documentElement,而使用document.body,则在FF会出现问题;如果不使用background:red; 样式,则在IE中会出现只有当鼠标放在DIV边框上时才能拖动.
var offset_x;
var offset_y;
function Milan_StartMove(oEvent)
{
var whichButton;
if(document.all&&oEvent.button==1) whichButton=true;
else { if(oEvent.button==0)whichButton=true;}
if(whichButton)
{
var oDiv=document.getElementById("oDiv");
offset_x=parseInt(oEvent.clientX-oDiv.offsetLeft);
offset_y=parseInt(oEvent.clientY-oDiv.offsetTop);
document.documentElement.onmousemove=function(mEvent)
{
var eEvent;
if(document.all) eEvent=event;
else{eEvent=mEvent;}
var oDiv=document.getElementById("oDiv");
var x=eEvent.clientX-offset_x;
var y=eEvent.clientY-offset_y;
oDiv.style.left=(x)+"px";
oDiv.style.top=(y)+"px";
}
}
}
function Milan_StopMove(oEvent){document.documentElement.onmousemove=null; }
<div id="oDiv" onmousedown="Milan_StartMove(event)" onmouseup="Milan_StopMove(event)" style="cursor:move;position:absolute;width:100px;height:60px;border:1px solid silver;left:100px;top:100px;background:white;z-index:9999;">
</div>
以上为跨IE6和FF浏览器的解决方案,理清思路后,做起来相当简单.
注意:移动到页面外部将出现问题。。。
注意以下红色部分是关键.如果不使用 document.documentElement,而使用document.body,则在FF会出现问题;如果不使用background:red; 样式,则在IE中会出现只有当鼠标放在DIV边框上时才能拖动.
var offset_x;
var offset_y;
function Milan_StartMove(oEvent)
{
var whichButton;
if(document.all&&oEvent.button==1) whichButton=true;
else { if(oEvent.button==0)whichButton=true;}
if(whichButton)
{
var oDiv=document.getElementById("oDiv");
offset_x=parseInt(oEvent.clientX-oDiv.offsetLeft);
offset_y=parseInt(oEvent.clientY-oDiv.offsetTop);
document.documentElement.onmousemove=function(mEvent)
{
var eEvent;
if(document.all) eEvent=event;
else{eEvent=mEvent;}
var oDiv=document.getElementById("oDiv");
var x=eEvent.clientX-offset_x;
var y=eEvent.clientY-offset_y;
oDiv.style.left=(x)+"px";
oDiv.style.top=(y)+"px";
}
}
}
function Milan_StopMove(oEvent){document.documentElement.onmousemove=null; }
<div id="oDiv" onmousedown="Milan_StartMove(event)" onmouseup="Milan_StopMove(event)" style="cursor:move;position:absolute;width:100px;height:60px;border:1px solid silver;left:100px;top:100px;background:white;z-index:9999;">
</div>
以上为跨IE6和FF浏览器的解决方案,理清思路后,做起来相当简单.
注意:移动到页面外部将出现问题。。。
相关文章推荐
- javascript 实现简单的div拖动
- Javascript实现div的鼠标拖动
- JavaScript配合Div实现工具栏拖动
- JavaScript实现可拖拽的拖动层Div实例
- Javascript简单实现可拖动的div
- Javascript实现的类似Google的Div拖动效果代码
- Js无刷新添加新层,拖动DIV层可互换位置的JavaScript实现
- javascript 拖动div的一种实现
- javascript实现div的拖动并调整大小
- javascript实现div的拖动并调整大小类似qq空间个性编辑模块
- Javascript简单实现可拖动的div
- javascript实现div的拖动并调整大小类似qq空间个性编辑模块
- javascript 实现简单的div拖动
- Javascript 实现 div 的拖动
- JavaScript实现DIV拖动效果
- Javascript实现的类似Google的Div拖动代码
- 用javascript实现DIV的拖动
- Javascript实现的类似Google的Div拖动效果代码
- 使用JavaScript和DIV实现WebGIS中的鼠标拖动绘制矩形