この例http://raphaeljs.com/graffle.htmlを微調整して、ドラッグをコンテナsvg内に制限しようとしています。
http://bl.ocks.org/1557377やhttp://jqueryui.com/demos/draggable/#constrain-movementのように基本的に、ドラッグ中にバウンディングボックスからオブジェクトが移動するのを制限したいと思います。
これがmove関数に追加された微調整されたコードです(http://jsfiddle.net/f4mFQ/1/)
if(thisBox.x < 0){
ddx = 0;
}else if(thisBox.x>width-thisBox.width ){
ddx = width-thisBox.width;
}else {
ddx = this.ox + dx;
}
if(thisBox.y < 0){
ddy = 0;
}else if(thisBox.y>height-thisBox.height ){
ddy = height-thisBox.height;
}else{
ddy = this.oy + dy;
}
これは部分的に機能します。長方形が境界を越えて移動すると、エッジで踊ります。円と楕円が端にくっついている間。
したがって、この場合はsvgの場合、親バウンディングボックス内の制限された動きで要素のドラッグを制限する方法