javascript实现可拖动DIV层

Posted 杰的记事本——javascript.shop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript实现可拖动DIV层相关的知识,希望对你有一定的参考价值。

原文发布时间为: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浏览器的解决方案,理清思路后,做起来相当简单.

注意:移动到页面外部将出现问题。。。



























以上是关于javascript实现可拖动DIV层的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript-拖动层

在本机javascript中创建一个可拖动的div [重复]

对于未嵌套的“可拖动”div 标签:JQuery/JavaScript div 标签“包含”方法/算法?

用Jquery,如何编写:一个外层DIV,内层一个DIV,如何让内层DIV当鼠标拖动就可移动但不可跑出外层DIV。

怎样用javascript实现两个div之间有两根连线并能拖动?

将 javascript 函数应用于可拖动副本