我正在使用JointJS来创建动态图。在我的场景中,我有两篇论文。左边包含元素形状作为模板,我可以拖放到右边的纸张。一切都很好。但现在我想将一个元素形状放在另一个元素形状上(例如耦合元素)。如果左侧元素与右侧纸张上的任何其他元素相交,则应触发事件,将新元素形状嵌入到现有元素中。
到目前为止我得到了这个,但交叉点不起作用:
...
//try to embed by dropping
_.each(graph.getElements(), function (el) {
if (el.getBBox().intersect(cellView.model.getBBox())) {
//embed element one into element two
}
});
...
提前致谢!
答案 0 :(得分:1)
现在我要回答我自己的问题......
//get all existing elements and iterate through
_.each(graph.getElements(), function (elements) {
//let s be the new element to drag over the parent element
if (s.getBBox().intersect(elements.getBBox())) {
//add a condition if you want....
if (elements instanceof joint.shapes.devs.Coupled) {
//now embed the new element into the existing one
elements.embed(s);
}
}
});