//head为那个div的头
//Message为整个div
 var left,top;
           var move=false;
           $("#head").mousedown(function(e){
               move = true;
               left = e.clientX-$("#head").offset().left;
               top = e.clientY-$("#head").offset().top;
              })
           $("#head").mousemove(function(e){
                if(move)
                {
                    var x = e.clientX-left;
                    var y = e.clientY-top;
                    $("#Message").css({left:x,top:y});
                }
           })
           $("#head").mouseup(function(e){
                move=false;
           })这样实现不了额
鼠标移上去,那个层就跑老远了
不知道哪里出问题了

解决方案 »

  1.   

    把mouseup和mousemove 绑定到document上
      

  2.   

    $(document).mouseup(function(){....}).mousemove(function(){...});
      

  3.   

    我的代码里不是有$("#head").mousedown吗?还是你那个有其他意思呢?
      

  4.   

    如果不绑定document 上,移动快了鼠标就会脱离head的div元素. 产生你说的问题鼠标移上去,那个层就跑老远了
      

  5.   

    各位大侠
    现在拖动是可以拖动了
    可是像素由点不正确
    当鼠标点击head并移动时,它会自动向左向上跑好几个像素
    大侠帮忙看看哪里计算错了 var moveX,moveY;
               var move=false;
               $("#head").mousedown(function(e){
                    move=true;
                    var ol = $("#Message").offset().left,ot = $("#Message").offset().top;
                    moveX = e.clientX-ol;
                    moveY=e.clientY-ot;
                    $(document).mousemove(function(e){
                        if(move)
                        {
                            var x = e.clientX-moveX;
                            var y = e.clientY-moveY;
                            $("#Message").css({left:x,top:y})
                        }
                    })
                    $(document).mouseup(function(){
                        move=false;
                    })
               })
      

  6.   

    try
    [code=vip_888专用语言]moveX = e.clientX;
    moveY=e.clientY;[/code]
      

  7.   

    //实现层的拖移    
    var cao_x,cao_y
    function caoMove(obj)  //实现层的拖移

      if(event.button==1)
      {
        var caoX=obj.clientLeft;
        var caoY=obj.clientTop;
        if((event.x-cao_x)<0)
        {
          obj.style.pixelLeft=caoX;
        }
        else
        {
            obj.style.pixelLeft=caoX+(event.x-cao_x);
        }
        if(event.y-cao_y<0)
        {
            obj.style.pixelTop=caoY;
        }
        else
        {
             obj.style.pixelTop=caoY+(event.y-cao_y);
        }
       
        //obj.style.pixelLeft=document.body.scrollLeft;
      }
    }
      

  8.   

    [/Quote]
    大侠 你去js板块那里,那里我也发了个贴,我改成这样了也还是不行额