jointJS(一)--关于jointJS的初认识

ByteZenithMaster
• 阅读 9033

最近由于项目需要,开始接触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 data
        rect: {
            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 data
        rect: {
            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的初认识就先到这里啦,加油!

点赞
收藏
评论区
推荐文章
可莉 可莉
3年前
22个免费流程设计工具.doc
22个免费的图表、流程图工具饼图、柱状图、线图和许多其他的图形是非常重要的用来表示数据和沟通的信息,并可展示两个实体之间的关系。而这些图形如果用在Web上则有助于吸引访客的注意力,并有效地解释相关数据。在这里我们推荐一些很棒的工具,你可以通过点击创建非常直观的设计流程图和图表。Gliffy(https://www.os
Easter79 Easter79
3年前
SVG
1.SVG  图表,动效ScalableVectorGraphics 可缩放矢量图形 是一种用来描述二维矢量图形的XML标记语言。SVG面向图形,HTML面向文本。2.SVG和Canvas的区别  Canvas做图是在画布上通过js来控制动态  SVG是通过标签来实现的  SVG放大之后不会失真,Canvas放大后会失
Wesley13 Wesley13
3年前
HTML5实现绘制几何图形
HTML5新增了一个<canvas.../属性。该元素自身并不绘制图形,只是相当于一张空画布。如果开发者需要向<canvas.../上绘制图形则必须使用JavaScript脚本进行绘制。为了向<canvas.../元素上绘图,必须经过如下3步。获取<canvas.../元素对应的DOM对象,这是一个Canvas对象。调用Canvas对象
Wesley13 Wesley13
3年前
C#GDI+
最近对GDI这个东西接触的比较多,也做了些简单的实例,比如绘图板,仿QQ截图等.  废话不多说了,我们先来认识一下这个GDI,看看它到底长什么样.  GDI:GraphicsDeviceInterfacePlus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C.NET中,使用GDI处理二维(2D)的图形和图像,使用Direc
Stella981 Stella981
3年前
SVG
1.SVG  图表,动效ScalableVectorGraphics 可缩放矢量图形 是一种用来描述二维矢量图形的XML标记语言。SVG面向图形,HTML面向文本。2.SVG和Canvas的区别  Canvas做图是在画布上通过js来控制动态  SVG是通过标签来实现的  SVG放大之后不会失真,Canvas放大后会失
燕青 燕青
1年前
OmniGraffle 注册码激活 附 详细图文安装教程 支持M1
是一款专业的图形设计软件,适用于制作各种图形和图表,如流程图、组织图、UML图、网络图等等。它具有直观的界面和丰富的功能,可以帮助用户快速创建高质量的图形和图表。OmniGraffle的主要特点包括:丰富的模板和预设:OmniGraffle提供了大量的模板
子桓 子桓
1年前
macos端必备图表绘制软件:OmniGraffle Pro激活正式中文版
OmniGrafflePro是一款专业的图形绘制和图表设计软件,它提供了丰富的工具和功能,用于创建和编辑各种类型的图形、流程图、组织结构图、网络图、平面布局等。以下是OmniGrafflePro的一些主要特点和功能:强大的图形绘制工具:OmniGraffl
铁扇公主 铁扇公主
1年前
Mac电脑好用的绘图软件 OmniGraffle Pro for mac
OmniGrafflePro是一款专业的图形设计和绘图软件,该软件旨在帮助用户创建精美的图表、流程图、组织结构图、原型设计和其他可视化图形。OmniGrafflePro提供了丰富的工具和功能,使用户能够轻松制作复杂的图形和图表。以下是OmniGraffle
流浪剑客 流浪剑客
1年前
OmniGraffle Pro for mac密钥激活 及 完整安装激活教程 支持M1
是一款专业的图形设计软件,旨在帮助用户创建精美而富有信息的图表、流程图、组织结构图和其他可视化图形。以下是OmniGrafflePro的主要特点:强大的图形设计工具:软件提供了丰富的图形设计工具,使用户能够创建各种类型的图表和图形。用户可以绘制形状、线条和
流浪剑客 流浪剑客
1年前
PDF文件批量打印工具:BatchOutput PDF for Mac
是一款专业的图形设计软件,旨在帮助用户创建精美而富有信息的图表、流程图、组织结构图和其他可视化图形。以下是OmniGrafflePro的主要特点:强大的图形设计工具:软件提供了丰富的图形设计工具,使用户能够创建各种类型的图表和图形。用户可以绘制形状、线条和
铁扇公主 铁扇公主
1年前
mac电脑专业图表绘制 OmniGraffle Pro 正式激活介绍
OmniGrafflePro是一款流程图、图表和图形设计的专业级软件,适用于Mac和iOS平台。它提供了丰富的工具和功能,帮助用户创建和编辑各种图形和图表,从简单的流程图到复杂的组织结构图和原型设计。以下是OmniGrafflePro软件的一些主要功能和特