2011-09-30 74 views
2

我查看过几篇文章,并尝试了所有提出的方法,并且还没有找到解决方案。jQuery UI,可拖动的子div比父更大

我正在尝试创建一个可拖动的贴图,但当它自己的边缘遇到父边缘的边缘时将停止。孩子比父母大,所以我尝试了所有不同类型的方法来解决这个问题,但还没有找到解决方案。

下面的示例显示了一个示例,其中黑色边框内不应有任何空白。我尝试过几种不同的遏制方法,但还没有弄清楚它的数学原理。

例子:http://jsfiddle.net/LQtCY/3/

感谢

回答

6

具有u试过吗?

var parentPos = $('.mapshell').offset(); 
var childPos = $('.mapcontent_1').offset(); 

$(".mapcontent_1").draggable({ 
    drag: function(event, ui) { 
     if (ui.position.top > parentPos.top) { 
      ui.position.top = parentPos.top; 
     } 
     if (ui.position.left > parentPos.left) { 
      ui.position.left = parentPos.left; 
     } 
    }, 

    scroll: false 
}); 

http://jsfiddle.net/LQtCY/6/

+0

我怎样才能得到它停止时,孩子的边缘会合父。我不希望那里有一个黑盒子里的空白空间:http://jsfiddle.net/LQtCY/3/ – OpensaurusRex

+1

比HTML和CSS,必须改变。只是一秒.. – zdrsh

+0

我不介意孩子走出黑线,只要它确实走过了1像素内,如果这是有道理的? – OpensaurusRex