document.onmouseup=new Function('tag=false')
var tempx,tempy
var tag=false
function ondown(obj)
{
  iex=event.clientX
  iey=event.clientY
  tempx=parseInt(obj.style.pixelLeft)
  tempy=parseInt(obj.style.pixelTop)
  tag=true
}
function onmove(obj)
{
  if(tag==true)
  {
    obj.style.pixelLeft=tempx+event.clientX-iex
obj.style.pixelTop=tempy+event.clientY-iey
  }
}
  </script>
</head>
<body onselectstart='return false' oncontextmenu='return false' >
<div id="showdiv" style="position:absolute; width:100px; height:100px; background-color:#FF0000"; onmousedown="ondown(this)"; onmousemove="onmove(this)"></div>
</body>
</html>

解决方案 »

  1.   


    <html>
        <head>
            <title>Test</title>
            <script type="text/javascript">            var iDiffX = 0;
                var iDiffY = 0;            function handleMouseMove() {
                    var oEvent = EventUtil.getEvent();
                    var oDiv = document.getElementById("div1");
                    oDiv.style.left = oEvent.clientX - iDiffX;
                    oDiv.style.top = oEvent.clientY - iDiffY;
                }            function handleMouseDown() {
                    var oEvent = EventUtil.getEvent();
                    var oDiv = document.getElementById("div1");
                    iDiffX = oEvent.clientX - oDiv.offsetLeft;
                    iDiffY = oEvent.clientY - oDiv.offsetTop;                EventUtil.addEventHandler(document.body, "mousemove", handleMouseMove);
                    EventUtil.addEventHandler(document.body, "mouseup", handleMouseUp);
                }            function handleMouseUp() {
                    EventUtil.removeEventHandler(document.body, "mousemove", handleMouseMove);
                    EventUtil.removeEventHandler(document.body, "mouseup", handleMouseUp);
                }
                var EventUtil = new Object;
                EventUtil.addEventHandler = function (oTarget, sEventType, fnHandler) {
                    if (oTarget.addEventListener) {
                        oTarget.addEventListener(sEventType, fnHandler, false);
                    } else if (oTarget.attachEvent) {
                        oTarget.attachEvent("on" + sEventType, fnHandler);
                    } else {
                        oTarget["on" + sEventType] = fnHandler;
                    }
                };            EventUtil.removeEventHandler = function (oTarget, sEventType, fnHandler) {
                    if (oTarget.removeEventListener) {
                        oTarget.removeEventListener(sEventType, fnHandler, false);
                    } else if (oTarget.detachEvent) {
                        oTarget.detachEvent("on" + sEventType, fnHandler);
                    } else {
                        oTarget["on" + sEventType] = null;
                    }
                };            EventUtil.formatEvent = function (oEvent) {                if (typeof oEvent.charCode == "undefined") {
                        oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0;
                        oEvent.isChar = (oEvent.charCode > 0);
                    }                if (oEvent.srcElement && !oEvent.target) {
                        oEvent.eventPhase = 2;
                        oEvent.pageX = oEvent.clientX + document.body.scrollLeft;
                        oEvent.pageY = oEvent.clientY + document.body.scrollTop;                    if (!oEvent.preventDefault) {
                            oEvent.preventDefault = function () {
                                this.returnValue = false;
                            };
                        }                    if (oEvent.type == "mouseout") {
                            oEvent.relatedTarget = oEvent.toElement;
                        } else if (oEvent.type == "mouseover") {
                            oEvent.relatedTarget = oEvent.fromElement;
                        }                    if (!oEvent.stopPropagation) {
                            oEvent.stopPropagation = function () {
                                this.cancelBubble = true;
                            };
                        }                    oEvent.target = oEvent.srcElement;
                        oEvent.time = (new Date).getTime();                }                return oEvent;
                };            EventUtil.getEvent = function() {
                    if (window.event) {
                        return this.formatEvent(window.event);
                    } else {
                        return EventUtil.getEvent.caller.arguments[0];
                    }
                };        </script>
            <style type="text/css">
                #div1 {
                    background-color: red;
                    height: 100px;
                    width: 100px;
                    position: absolute;
                }
            </style>
        </head>
        <body>
            <p><div id="div1" onmousedown="handleMouseDown(event)"></div> </p>
    </body>
    </html>
      

  2.   

    function onmove() // onmove 关键字 改个名字
      

  3.   

    在楼主基础上改下<script type="text/javascript">
    <!--var relL,relT ,currentObj;
    var tag=false 
    function ondown(obj) 

      obj.setCapture();
      currentObj = obj;
      relL = event.x - obj.style.pixelLeft;
      relT = event.y - obj.style.pixelTop;
      tag=true 

    function f_onmove(obj) 
    {   if(tag==true) 
      { 
        obj.style.pixelLeft= event.x - relL;
        obj.style.pixelTop= event.y - relT;
      } 
    } document.onmouseup= function(){
    tag = false;
    currentObj.releaseCapture();
    currentObj = null;

    }
    //-->
    </script>
      
    </head> 
    <body  > 
    <div id="showdiv" style="position:absolute; width:100px; height:100px; background-color:#FF0000" onmousedown="ondown(this)" onmousemove="f_onmove(this)"> </div> 
    </body> 
    </html>