【发布时间】:2016-06-22 03:40:48
【问题描述】:
我的画布中有两个绿色的小divs。可以使用以下代码在画布中拖动它,id 为myid_templates_editor_canvas:
myid_templates_editor_make_draggable('div1');
myid_templates_editor_make_draggable('div2');
// Make an element draggable within the canvas
function myid_templates_editor_make_draggable(id){
jQuery('#' + id).draggable({
cursor: 'move',
cursorAt: { top: 56, left: 56 },
containment: '#myid_templates_editor_canvas',
});
}
见下图:
我使用 jsPlumb 在 2 个可拖动的 div 之间划了一条线。
var jsPlumb_instance = jsPlumb.getInstance();
var endpointOptions = {
anchor:'BottomCenter',
maxConnections:1,
endpoint:['Rectangle',{width:'0px', height:'0px' }],
paintStyle:{fillStyle:'black'},
connectorStyle : { lineWidth: '1px' , strokeStyle: 'black' },
connector : ['Straight'],
setDragAllowedWhenFull:true,
};
div1Endpoint = jsPlumb_instance.addEndpoint('div1', endpointOptions);
div2Endpoint = jsPlumb_instance.addEndpoint('div2', endpointOptions);
jsPlumb_instance.connect({
source:div1Endpoint,
target:div2Endpoint,
});
jsPlumb_instance.draggable('div1');
jsPlumb_instance.draggable('div2');
我不希望画布边框外的线条。见第三张图。
我希望该行包含在画布中,ID 为 myid_templates_editor_canvas。请参见下图:
我尝试用下面的代码更改上面的部分代码,但没有成功。
jsPlumb_instance[id].draggable(id1, {containment:'#myid_templates_editor_canvas'});
jsPlumb_instance[id].draggable(id2 , {containment:'#myid_templates_editor_canvas'});
是的,这两个点在某种程度上受到了限制,因为最大线的长度是有限的,但仍然超出了画布的边界。下面是画布和两个点的 html 设置。
<table>
<tr>
<td>
<canvas id="myid_templates_editor_canvas"></canvas>
<div id="div1"></div>
<div id="div2"></div>
</td>
</tr>
</table>
【问题讨论】:
标签: javascript jquery jquery-ui jquery-plugins jsplumb