最近由于项目需要,开始接触jointJS,妥妥不停刷文档模式,先写一下对于jointjs的粗浅认识吧。

我们可以使用JointJS已提供的图元素绘图,也可根据需求自定义一些图元素。除此之外,JointJS创建的图表就是SVG图形,想改变图形样式,就去GoogleSVG相关语法就好啦。另外,它极易上手且操作简单,并且支持所有的现代浏览器。

下面先通过一个小的demo来展示jointjs的使用~

首先先去官网下载一下这些文件,详见HTML代码块head里的内容:
一切准备好就绪,我们就开始了。

先看HTML代码,body就一个div#myholder用来盛放我的画板graph,这里肯定有人会问什么是graph,憋急,请往下看。

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><link rel="stylesheet" type="text/css" href="css/joint.css" /><script src="js/lib/jquery.min.js" type="text/javascript" charset="utf-8"></script><script src="js/lib/lodash.min.js"></script><script src="js/lib/backbone-min.js"></script><script src="js/lib/joint.js"></script></head><body><div id="myholder"></div></body><script src="js/createjoint.js" type="text/javascript" charset="utf-8"></script>
</html>

JS代码如下:
首先是定义画板和画布

var graph = new joint.dia.Graph;
var paper = new joint.dia.Paper({el: $('#myholder'),//此处是你要放graph的容器width: 1300,height: 800,model: graph,gridSize: 1
});

接下来,就先画个简单的矩形,想要改变一些默认样式的话需要了解元素的SVG DOM结构:

var rect = new joint.shapes.basic.Rect({position: {x: 100,y: 30},size: {width: 200,height: 30},attrs: {//attr SVG attr      prop- custom datarect: {fill: 'rgb(238,244,247)','stroke': 'rgb(47,152,223)','stroke-width': '1px'//svg上色 fill stroke},text: {text: 'my box',fill: 'black'}}
});

跟矩形相似,我们也可以画个椭圆,代码如下:

var ellipse = new joint.shapes.basic.Rect({position: {x: 100,y: 30},size: {width: 200,height: 30},attrs: {//attr SVG attr      prop- custom datarect: {fill: 'rgb(238,244,247)','stroke': 'rgb(47,152,223)','stroke-width': '1px','rx': '10px','ry': '30px'//svg上色 fill stroke},text: {text: 'ellipse',fill: 'pink'}}
});

要让他们有一定的距离

ellipse.translate(300); //两块的距离

接下来,再来画个连线:

var link = new joint.dia.Link({source: {id: rect.id},target: {id: ellipse.id}
});

最后,把前面造的对象都放到画板中:

graph.addCells([rect, rect2, link]);

那么,一个小小的demo就实现了,是不是挺简单的,接下来我还会陆续分享使用jointjs中的问题以及我找到的最好的方法,jointjs的初认识就先到这里啦,加油!

jointJS(一)--关于jointJS的初认识相关推荐

  1. vue使用jointJs,vue流程图、旅程图

    vue使用jointJs,vue流程图.旅程图 效果图 安装 使用 组件中加入 script 创建画版 实例化画布,把画布挂载到dom 添加元素 自定义元素 事件交互 效果图 安装 npm insta ...

  2. 在JointJS元素中使用html

    问题背景 在工作中有个需求需要画一幅"树图",本想使用echarts进行绘制的.奈何echarts的label中不支持formatter html,即html文本的渲染.故为了使图 ...

  3. Angular+jointjs

    Angular+jointjs 之前搞angular和jointjs搞得很绝望,后来发现哦原来是这个样子啊. 一.进入项目目录,运行以下命令安装jointjs和相关的依赖 1.jquery npm i ...

  4. 结合给定数据使用JointJS自动绘制元素

    我们给定一串数据,然后结合数据用 JointJS 在画布中绘制出元素 data.js export default [{id: 1,type: 'start',name: '事件',prev: [], ...

  5. JointJS:JavaScript 流程图绘制框架

    目录 JointJS:JavaScript 流程图绘制框架 JointJS 简介 JointJS Hello world 前后端分离架构 其他 自动布局 Automatic layout 使用 HTM ...

  6. Jointjs初认识

    最近在研究Jointjs,这个做流程图.工作表.图标真的是很强大: 1.新建画板.画布 joint.setTheme('modern'); //设置主题样式 var graph = new joint ...

  7. JointJS与vue集成初体验

    将 JointJS 添加到 Vue 项目中 安装需要的包 npm 方式 npm install jointjs yarn 方式 yarn add jointjs 在 vue 中使用 jointjs & ...

  8. draw.io编辑工具

    介绍 Draw.io是一款在线图表编辑工具, 可以用来编辑工作流.BPM.org charts.UML.ER图.网络拓朴图等.draw.io支持IE 11,Chrome 32 +,Firefox 38 ...

  9. 8.custom-links

    JointJS comes with several built-in link shapes; we have already encountered joint.shapes.standard.L ...

最新文章

  1. android Spinner点击事件处理
  2. Request_继承体系
  3. 大学慕课数据结构单元测试——华中科技大学
  4. 关于String,StringBuffer和StringBuilder之间的区别和联系
  5. python html模板_Python html.format_html方法代码示例
  6. 蓝桥杯 ALGO-54 算法训练 简单加法(基本型)
  7. react 子组件向父组件传值
  8. miui android mmi,小米5miui9稳定版自改官包方法
  9. CMOS门基本工作原理
  10. Java后台给PDF加水印并且合并多个PDF文件
  11. 中国哲学史(先秦部分)-------简答
  12. 集装箱编号校验码规则及java/JavaScript的实现
  13. 教你如何赚你的第一桶金 - 2048(包括源代码)
  14. BZOJ 3687 简单题
  15. 群体遗传 | haplotype block | HaploBlocker参数介绍
  16. 关键明 抖音 打造百万爆款变现文案
  17. CRC校验码计算,以常用CRC-8为例
  18. 什么是聚合路由器?主要运用在哪些方面?
  19. Rviz中publish point使用
  20. 可作为工质状态参数的是_热力学

热门文章

  1. HTML+CSS+JavaScript 超具创意的网页生日快乐祝福网页模板
  2. 国产物联网操作系统有哪些,谁主沉浮?
  3. [玩机技巧] 不用root,彻底删除华为预装软件的方法
  4. TortoiseGit切换用户
  5. java程序的开发步骤,全套教学资料
  6. 第八章:对象、类与面向对象编程
  7. 2018年全闪存阵列市场七大趋势
  8. Python:统计数字
  9. JIT VS AOT
  10. 该和thinkjs说bye bye了