Javascript 制作元素';不可选择';联合

Javascript 制作元素';不可选择';联合,javascript,jointjs,Javascript,Jointjs,我在我的一个项目中使用了图表库 1)我很想知道它是否提供了任何方法来限制用户不使用图表中的元素。我的意思是:用户可以将图表视为图像,而不是像调整大小、更改位置、拖动链接等那样与之交互 2)我的应用程序严重依赖它。虽然我已经解决了自动布局的问题,但是Jointjs是否可以,我们可以告诉lib我们需要这些元素和东西,并请帮助我们制作最合适的图表,如果链接是连续的直线,则具有非碰撞元素和最小数量的链接相互碰撞以及与路径中的元素碰撞 3)最后,我想知道我们是否可以检查与其他元素冲突的链接,或者与同一图表

我在我的一个项目中使用了图表库

1)我很想知道它是否提供了任何方法来限制用户不使用图表中的元素。我的意思是:用户可以将图表视为图像,而不是像调整大小、更改位置、拖动链接等那样与之交互

2)我的应用程序严重依赖它。虽然我已经解决了自动布局的问题,但是Jointjs是否可以,我们可以告诉lib我们需要这些元素和东西,并请帮助我们制作最合适的图表,如果链接是连续的直线,则具有非碰撞元素和最小数量的链接相互碰撞以及与路径中的元素碰撞

3)最后,我想知道我们是否可以检查与其他元素冲突的链接,或者与同一图表中的其他链接冲突的链接。我知道这是可能的情况下的元素

if (element1.getBBox().intersect(element2.getBBox())) {
    // elements intersect
}
1) 使用
newjoint.dia.Paper({interactive:false,…})
或直接在纸张上将指针事件CSS属性设置为none:
Paper.$el.CSS('pointer-events','none')

2) 您可以使用joint.layout.DirectedGraph插件。此插件可在此处下载:此处有一篇描述此插件的博文:


3) 总的来说,这并不容易。我将向您介绍这个站点,以获取计算两条路径相交的示例:。这是下载库:

非常感谢您的完美答案。帮了很多忙!我们能让一个特定的元素“不可选择”吗?我有一个类型为
joint.shapes.devs
的元素。我想让这种类型的特定元素“不可选择”,而不是这种类型的所有元素啊!您的答案包含解决方案
element.attr({rect:{style:{'pointer-events':'none'}}):)正确,这将是一种方法。另一个是,您可以通过使用类似于:
paper.findViewByModel(myElement.options.interactive=false
的东西,将
interactive:false
设置为特定元素(更准确地说,它们的视图),抱歉再次打扰您,我们可以更改特定输入端口的css吗?为了将sourcePort链接到我正在使用的目标,
source:{id:source.id,selector:source.getPortSelector(sourcePort)}
,它为我提供了准确的源端口,但是在知道它是我的源连接器之后,如何在这个特定端口上应用css呢?有办法吗
如果标签的宽度大于元素的宽度,我们是否可以将其自动放入元素内部
?我遇到了
foreignobject
,但不知道如何使用它?你能解释一下吗?