开源流程图表库(04):JointJS,有专门的可视化编辑器

本文介绍了JavaScript库JointJS,用于创建和定制交互式图形,涵盖其主要功能如图形绘制、交互操作、自定义布局和事件处理。特别提到了其可视化编辑器Rappid,以及如何在网页中集成和使用JointJS进行图形设计和编辑。
摘要由CSDN通过智能技术生成

hello,我是贝格前端工场,本期分享在线图表绘制js库JointJS,这个库绘制的图表可以导出html使用,欢迎老铁们持续关注、点赞,有需求可以私信我们。

一、JointJS是什么

JointJS是一个用于构建交互式图形和可视化的JavaScript库。它提供了丰富的功能和工具,使开发人员能够轻松地创建和定制各种图形和流程图,包括组织图、网络拓扑图、UML图等。

二、JointJS的主要功能

JointJS具有以下主要功能和特点:


 


 

  1. 图形绘制:JointJS提供了强大的绘图功能,可以绘制各种形状、线条和文字,并支持自定义样式和属性。
  2. 交互式编辑:JointJS支持拖放、缩放、旋转和连接图形,以及对图形的选择、移动和调整大小等交互操作。
  3. 连接和关系:JointJS允许在图形之间建立连接和关系,可以通过连接线条表示依赖关系、流程流转、数据流等。
  4. 自定义布局:JointJS提供了多种布局算法,可以自动排列和调整图形的位置和大小,以实现最佳的可视化效果。
  5. 事件和交互:JointJS支持各种事件处理和交互操作,可以响应用户的操作和交互,并触发相应的事件和动作。
  6. 导出和导入:JointJS支持将图形导出为图片、SVG、JSON等格式,也支持从这些格式导入图形进行编辑和展示。
  7. 扩展和定制:JointJS提供了丰富的插件和扩展机制,可以根据需要添加自定义的功能和特性。

通过使用JointJS,开发人员可以轻松地创建交互式的图形和可视化界面,用于展示和编辑各种复杂的图形和流程。它在Web应用程序、数据可视化、流程建模等领域具有广泛的应用。

三、JointJS的可视化编辑器:Rappid

JointJS有一个专用的编辑器称为JointJS Rappid。JointJS Rappid是一个基于JointJS库的可视化编辑器,提供了更高级的功能和工具,使用户能够更方便地创建和编辑图形。


 


 

要使用JointJS Rappid编辑器,可以按照以下步骤进行操作:

  1. 下载和安装:首先,从JointJS官方网站(https://www.jointjs.com/)下载JointJS Rappid编辑器的安装包,并按照提示进行安装。
  2. 启动编辑器:安装完成后,可以通过双击应用程序图标或在命令行中运行相应的命令来启动JointJS Rappid编辑器。
  3. 创建新项目:在编辑器中,可以选择创建新项目或打开已有的项目。如果是新项目,可以选择空白项目或使用预设的模板。
  4. 绘制图形:在编辑器中,可以通过拖放图形元素、连接线条等操作来创建图形。可以使用编辑器提供的工具栏和菜单进行绘图操作,也可以通过编程方式进行图形的创建和编辑。
  5. 自定义样式:可以使用编辑器提供的样式编辑器来自定义图形的样式,包括颜色、边框、字体等。还可以定义图形的交互行为和动画效果。
  6. 添加交互和行为:可以使用编辑器提供的交互工具和事件处理器来添加交互和行为。例如,可以定义图形的拖放操作、点击事件、连接线条的创建和删除等。
  7. 导出和分享:完成图形的创建和编辑后,可以将图形导出为图片、SVG、JSON等格式,以便在其他应用程序中使用或分享。

JointJS Rappid编辑器提供了丰富的功能和工具,使用户能够更高效地创建和编辑图形。它还支持自定义插件和扩展,可以根据需要添加额外的功能和特性。通过使用JointJS Rappid编辑器,用户可以轻松地创建复杂的图形和可视化界面,并进行交互和编辑。

四、JointJS如何在网页中使用

要在网页中使用JointJS,可以按照以下步骤进行操作:

  1. 引入JointJS库:首先,在网页的HTML文件中引入JointJS库的JavaScript文件和样式文件。可以从JointJS官方网站(https://www.jointjs.com/)下载最新版本的库文件,然后将其引入到HTML文件中。
<!DOCTYPE html>
<html>
<head>
    <title>JointJS Example</title>
    <link rel="stylesheet" href="joint.min.css">
    <script src="joint.min.js"></script>
</head>
<body>
    <!-- 页面内容 -->
</body>
</html>
  1. 创建画布:在HTML文件中,可以创建一个容器元素作为画布,用于显示图形。可以使用div元素,并为其指定一个唯一的ID。
<body>
    <div id="canvas"></div>
</body>
  1. 绘制图形:在JavaScript代码中,可以使用JointJS提供的API来创建和绘制图形。首先,创建一个joint.dia.Paper对象,将其连接到画布容器。
var canvas = document.getElementById('canvas');
var paper = new joint.dia.Paper({
    el: canvas,
    width: 800,
    height: 600,
    model: new joint.dia.Graph()
});
  1. 创建图形元素:使用joint.shapes命名空间中的对象来创建图形元素,例如矩形、圆形、文本等。可以设置元素的位置、大小、样式和属性。
var rect = new joint.shapes.standard.Rectangle();
rect.position(100, 100);
rect.resize(100, 50);
rect.attr({
    body: {
        fill: 'blue'
    },
    label: {
        text: 'Rectangle',
        fill: 'white'
    }
});
  1. 添加图形到画布:将创建的图形元素添加到画布的模型中,以便显示在画布上。
paper.model.addCell(rect);
  1. 添加交互和事件:可以为图形元素添加交互和事件处理,例如拖放、点击、连接等。可以使用JointJS提供的API来实现这些交互和事件。
rect.on('change:position', function(element, newPosition) {
    console.log('New position:', newPosition.x, newPosition.y);
});

通过以上步骤,可以在网页中使用JointJS来创建和展示图形。可以根据需要添加更多的图形元素、交互和事件处理,以实现更丰富的功能和效果。

 跨浏览器,可兼容IE7--IE10, FireFox, Chrome, Opera等几大内核的浏览器,且不需要浏览器再加装任何控件。  多系统兼容性、可移植性:由于只包括前台UI,因此二次开发者可很方便将本插件用在任何一种需要流程图的B/S系统应用上,流程图的详细实现逻辑完全交于后台程序开发者自己实现;对于后台,只要能返回/接收能被本插件解析的JSON格式数据即可.所以本插件可用于不同的服务器语言建立的后台上.  跨领域:流程图设计器不止用在电信领域,在其它需要IT进行技术支持的领域中都有重大作用.  以下从纯技术实现层面具体描述:  页面顶部栏、左边侧边栏均可自定义;  当左边的侧边栏设为不显示时,为只读状态,此时的视图区可当作是一个查看器而非编辑器。  侧边工具栏除了基本和一些流程节点按钮外,还自定义新的节点按钮,自定义节点都可以有自有的图标、类型名称,定义后在使用可可在工作区内增加这些自定义节点。  顶部栏可显示流程图数据组的标题,也可提供一些常用操作按钮。  顶部栏的按钮,除了撤销、重做按钮外,其余按钮均可自定义点击事件。  可画直线、折线;折线还可以左右/上下移动其中段。  具有区域划分功能,能让用户更直观地了解哪些节点及其相互间的转换,是属于何种自定义区域内的。  具有标注功能,用橙红色标注某个结点或者转换线,一般用在展示流程进度时。  能直接双击结点、连线、分组区域中的文字进行编辑  在对结点、连线、分组区域的各种编辑操作,如新增/删除/修改名称/重设样式或大小/移动/标注时,均可捕捉到事件,并触发自定义事件,如果自定义事件执行的方法返回FALSE,则会阻止操作。  具有操作事务序列控制功能,在工作区内的各种有效操作都能记录到一个栈中,然后可以进行撤销(undo())或重做(redo()),像典型的C/S软件一样。  0.4版中,加入了只导出在初始载入后被编辑的流程图中,只作了增删改等变更的元素,这样可用于用户快速存储,只保存本次变更过的内容,不用重新保存整个流程。  0.5版中,结点的样式不再受到原有程序的限制,所有样式均默认为淡蓝色长方形;如果要指定为圆形,可在初始化时定义结点类型为”原有类型”+” round”;如果要指定为复合结点,则可在初始化时定义结点类型为”原有类型”+” mix”。”原有类型”+” myType”:myType可为自己写的一种特殊样式类.  0.6版中,修正了一些BUG,改善了用户操作体验,并增加在可编辑状态下时,能用键盘上DELETE按键对元素进行删除功能。  0.7版中,修正了一些BUG,增加了连线变更要连的起始结点或结束结点的功能。  0.8版,取消原来的拟物化页面,变成如今的扁平化页面,并且支持主要位置的颜色自定义功能(如果想沿用原来老版本中的拟物化页面,只需保留原来的GooFlow.css文件即可);修正0.7版中的画线BUG。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝格前端工场

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值