怎么才能把一个框限制在一个范围内拖动,如只能在一个矩形范围内拖动,不能超过边界。要怎么判断?知道的朋友给个方法,谢谢了。

解决方案 »

  1.   

    首先,拖动的框要比范围小
    然后就是判断连界了,在拖动的时候计算彵动的框的left,top,right,bottom的值,再和边界的值比较就可以了.
      

  2.   

    如(select 楼上 from 楼上),很明了
      

  3.   

    我寫的兩個frame之間的spliter,其實也是一個DIV左右移動,你可以擴充一下就行了,思路很簡單。//設定狀態和捕獲鼠標事件
        function div_onmousedown()
        {
            div_split.isMouseDown = true;
            div_split.diffLeft = event.clientX - div_split.offsetLeft;//鼠標到DIV左邊的距離
            div_split.style.backgroundColor = "Black";
            div_split.setCapture();
        }   
        function div_onmousemove()
        {   
            if(div_split.isMouseDown)
            {
                div_split.style.backgroundColor = "Black";
                //記錄終點的鼠標坐標
                var endX = event.clientX;
                
                //每次點擊的位置不同,所以要清空重新獲取
                var oDiffLeft = 0;
                if (div_split.diffLeft != null)
                    oDiffLeft = div_split.diffLeft;
                
                //限定用戶左右最大能移到什麼地方
                if(endX - oDiffLeft >= 100 && endX - oDiffLeft <= window.screen.availWidth - 50)
                {
                    div_split.style.left = endX - oDiffLeft;
                    div_left.style.width = div_split.offsetLeft - 4;
                }
            }
        }    
        
        //設定狀態和釋放鼠標事件
        function div_onmouseup()
        {        
            div_split.isMouseDown = false;        
            div_split.style.backgroundColor = "ThreeDShadow";
            div_split.releaseCapture();
        }