document.getElementById("m_id").style.left=document.body.scrollLeft+event.clientX-50;
        //document.getElementById("m_id").style.left="613px";
        document.getElementById("m_id").style.top=document.body.scrollTop+event.clientY-50;
当你的移动速度很快的时候,由于dragon()运行没来得及跟上;所以就出现你所说的情况。

解决方案 »

  1.   

    楼上的说的不对,这段代码从一开始就错了,改成这样就好了,因为,第一个代码事件是放在div上的,所以当鼠标快速移动到,div外面而div没有移动到得时候就 ,脱离了,而第二段代码 事件是放到body上的,只是在开始标志上注明是不是点击了div就可以了。
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
    <head>

    <script>
    var flag=false;
    function drag(){
    if(flag){
    document.getElementById("m_id").style.left=document.body.scrollLeft+event.clientX-50;
    //document.getElementById("m_id").style.left="613px";
    document.getElementById("m_id").style.top=document.body.scrollTop+event.clientY-50;
    //alert(document.getElementById("m_id").style.left);
    }
    }
    function startDrag(){
    if(event.srcElement.id=="m_id"){
    flag=true;
    }
    }
    function stopDrag(){
    flag=false;
    }
    </script>
    <style>
    .css{
    width:100px;
    height:100px;
    filter:alpha(opacity=50);
    POSITION: absolute;
    left:100px;
    top:100px;
    background: url("http://images.movie.xunlei.com/gallery/432/552e18a73d33cc7cd45b1c3305342481.jpg");
    border-width: 2px;
    border-color: #0000ff;
    border-style: outset;
    }
    </style>
    </head>
    <body onmousedown="startDrag()" onmousemove="drag()" onmouseup="stopDrag()">
    <pre>
    var flag=false;
    function drag(){
    //if(flag){
    document.getElementById("m_id").style.left=document.body.scrollLeft+event.clientX-50;
    //document.getElementById("m_id").style.left="613px";
    document.getElementById("m_id").style.top=document.body.scrollTop+event.clientY-50;
    //alert(document.getElementById("m_id").style.left);
    //}
    }
    function startDrag(){
    flag=true;
    }
    function stopDrag(){
    flag=false;
    }
    .css{
    width:100px;
    height:100px;
    filter:alpha(opacity=50);
    POSITION: absolute;
    left:100px;
    top:100px;
    /*background: url("http://images.movie.xunlei.com/gallery/432/552e18a73d33cc7cd45b1c3305342481.jpg");*/
    border-width: 2px;
    border-color: #0000ff;
    border-style: outset;
    }
    </pre>
    <div id="m_id" class="css"></div>
    </body>
    </html>