qq_31650597 2017-03-23 01:47 采纳率: 0%
浏览 880

关于jQuery拖拽问题。

如何给div限定移动边界呢,设置了_move=false但是当往回拖div的时候拖不动,谢谢。

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    <html>  
    <head>
    <meta charset="utf-8">  
      <title> New Document </title>  
      <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>  
      <style type="text/css">  
    /*模块拖拽*/  
    .drag{position:absolute;
          width:100px;
          height:100px;
          border:1px solid #ddd;
          background:#FBF2BD;
          text-align:center;
          line-height:100px;
          padding:5px;
          top:100px;
          left:390px;
          cursor:move;
        }

    .box{ width:900px;
          height:500px;
          background:#AAA;
          position:absolute;
          top:36px;
          left:50px;
        }  


    </style>  

    <script type="text/javascript">  
    // 模块拖拽  
    $(function(){  
    var _move=false;//移动标记  
    var _x,_y;//鼠标离控件左上角的相对位置
    $(".drag").each(function(index) {
       $(this).text("机柜"+(index+1))//机柜编号
       $(this).mousedown(function(e){  
            _move=true;  
            _x=e.pageX-parseInt($(this).css("left"));  
            _y=e.pageY-parseInt($(this).css("top"));  
            $(this).fadeTo(20, 0.5);
            //点击后开始拖动并透明显示  
            }).mousemove(function(e){  
              if(_move){  
                var x=e.pageX-_x;//移动时根据鼠标位置计算控件左上角的绝对位置  
                var y=e.pageY-_y;
                var left=$(this).position().left;
                var top=$(this).position().top;
                var _left=$(".box").position().left;
                var _top=$(".box").position().top;
                $(this).css({top:y,left:x});//新位置

                 if(left<=_left){
                    _move=false//限定边界

                     }
                }

            }).mouseup(function(){  
             _move=false;  
            $(this).fadeTo("fast", 1);//松开鼠标后停止移动并恢复成不透明  
          });    
     })                        

     });       

    </script>  
    </head>  
    <body>
    <div class="box">

     <div class="drag"></div>
      <div class="drag"></div>
      <div class="drag"></div>  
      <div class="drag"></div>  
      <div class="drag"></div>  
      <div class="drag"></div>

    </div>             
    </body>  
    </html>         

  • 写回答

1条回答

  • Go 旅城通票 2017-03-23 08:17
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示