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

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来创建和展示图形。可以根据需要添加更多的图形元素、交互和事件处理,以实现更丰富的功能和效果。


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,104评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,816评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,697评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,836评论 1 298
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,851评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,441评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,992评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,899评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,457评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,529评论 3 341
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,664评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,346评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,025评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,511评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,611评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,081评论 3 377
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,675评论 2 359

推荐阅读更多精彩内容