怎么才能把一个框限制在一个范围内拖动,如只能在一个矩形范围内拖动,不能超过边界。要怎么判断?知道的朋友给个方法,谢谢了。
解决方案 »
- jquery的问题
- 动态改变背景图没反应。
- window.onresize事件为什么只会在页面load的时候相应?
- /(^\s+)|(\s+$)/g ???
- javascript给一个对象增加一个事件时,事件所用的函数我想让它能够带参数,请问怎么写?
- 小弟写了一个选择日历的控件, 自己本机测试一切都OK, 但在别的机器上出现日期生成混乱
- 网页代码中的下面一句话,什么意思?
- 为什么我的文件输入框加上accept="image/*"之后丝毫不起作用?
- nodejs问题求教
- HTML+JS实现菜单背景变换
- div不同区域点击时弹出窗口的怪问题,高手请解答!
- javascript ;点击rul,提交后,刷新到当前位置,请问如何实现,谢谢啦
然后就是判断连界了,在拖动的时候计算彵动的框的left,top,right,bottom的值,再和边界的值比较就可以了.
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();
}