jsplumb基础

jsPlumb初认识 hello,大家好,我是前端小老弟儿,最近老弟儿接到这样一个需求,实现一个流程图,可以连线,右键操作,以及删除连线等,如下所示得流程图。使用得插件是: jsPlumb;所以就简单的介绍一下jsPlumb基本使用 什么是jsplumb jsPlumb是一个强大得JavaScript连线库,提供html元素的拖放、连线等功能,可绘制不同类型、样式的连线,适用于开发web页面的图表、建模工具等。同时也支持vue2.0 ,react和Angular 。 jsplumb 能干什么? 该框架适用于必须回值图表得web 阅读详情
  1. jsPlumb概述
    jsPlumb是一个在dom元素之间绘制连接线的javascript框架,它使用svg技术绘制连接线。
  2. 基本概念
    很明显,一个连线主要要解决的问题包括谁和谁连,在哪里连(连接点在哪里),连接点长啥样,如何画线等问题
    1:Anchor,锚点,它是一个逻辑概念,解决连线的连接点位置问题。
    2:Endpoint,端点,它是一个可视化的点,解决 连接点长啥样的问题
    3:Connector,连线,解决如何画线的问题
    4:Overlay,覆盖物,它主要为连接添加一些装饰物,不如标签文本,连接点的箭头。Anchor:
    锚点的定义方式主要有下面几种
    1:用数组来定义
    [x位置,y位置,x方向,y方向]
    [x位置,y位置,x方向,y方向,x像素偏移,y像素偏移]
    位置的值在0~1之间
    方向的值为0,1,-1
    9个静态的值为:
    Top TopRight
    Right BottomRight
    Bottom BottomLeft
    Left TopLeft
    Center
    AutoDefault 包括Top, Right, Bottom, Left
    需要注意的是,坐标使用第四象限的坐标
    一个常用的组合是:
    var defaultAnchors = ["Top", "Right", "Bottom", "Left", [0.25, 0, 0, -1], [0.75, 0, 0, -1], [0.25, 1, 0, 1], [0.75, 1, 0, 1]
    , [0, 0.25, 0, -1], [0, 0.75, 0, -1], [1, 0.25, 0, 1], [1, 0.75, 0, 1]];
    2:几何图形的周边
    Circle Ellipse Triangle Diamond Rectangle Square
    anchor:[{ shape:"Triangle", anchorCount:150, rotation:25 } ]
    3:连续
    anchor:["Continuous", { faces:[ "top", "left" ] } ]

    Endpoint:
    jsPlumb提供了四种类型的端点,
    Dot,Rectangle,
    Blank,使用失败了。
    Image,使用失败了。

    Connectors
    jsPlumb提供了四种类型的连线,
    Bezier,StateMachine,Flowchart,Straight

    Overlay
    jsPlumb提供了3种类型的覆盖物,
    Arrow:箭头
    Label:标签
    Custom:自定义的html元素
    ConnectionOverlays: [
    ["Arrow", {
    location: 1,
    //foldback: 1,
    foldback: 0.618, ///0.618: 普通箭头,1:平底箭头,2:钻石箭头
    visible: true,
    id: "arrow"
    }],
    ["Label", { location: 0.5,
    cssClass: "endpointTargetLabel",
    visible: true,
    id: "label" }]
    ]

  3. 几个需要注意的地方:
    1:所有的子元素在一个父容器中,并且子元素都要使用绝对布局
    position: absolute;
    2:端点可以通过样式隐藏,直接使用"Blank"报错了。
    3:性能,在多个连接的时候,需要使用批处理模式来绘制。
    sintoonUx.jsPlumbInstance.setSuspendDrawing(true)
    sintoonUx.jsPlumbInstance.setSuspendDrawing(false, true);
    4:设置可拖拽
    sintoonUx.jsPlumbInstance.draggable(btnDoms);
  4. 使用范例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    drawConnectLine: function () {
        var sintoonUx = this;
        /// 定义锚点的位置
        var defaultAnchors = ["Top", "Right", "Bottom", "Left", [0.25, 0, 0, -1], [0.75, 0, 0, -1], [0.25, 1, 0, 1], [0.75, 1, 0, 1]
        , [0, 0.25, 0, -1], [0, 0.75, 0, -1], [1, 0.25, 0, 1], [1, 0.75, 0, 1]];
        /// 创建实例,配置默认的绘制属性,建立通用绘图方式等
        sintoonUx.jsPlumbInstance = jsPlumb.getInstance({
            PaintStyle: {
                lineWidth: 2,
                strokeStyle: "blue",
                outlineColor: "blue",
                dashstyle: "4 2",
                outlineWidth: 1
            },
            // Connector: ["Bezier", { curviness: 30 }],
            // Connector: ["StateMachine"],
            // Connector: ["Flowchart", { stub: [40, 60], gap: 10, cornerRadius: 5, alwaysRespectStubs: true }],
            Connector: ["Straight", { stub: [20, 50], gap: 0 }],
     
            Endpoint: ["Dot", { radius: 5, cssClass: "displaynone" }],/// 通过样式来隐藏锚点
            //Endpoint: ["Image ", { src: "http://rmadyq.sintoon.cn/Content/16Icons/arrow_right.png" }],/// 通过样式来隐藏锚点
            // Endpoint: ["Blank", "Blank"], 失败报错了,
            EndpointStyle: { fillStyle: "#567567" },
            Anchor: [defaultAnchors],
            // Anchor: ["Perimeter", { shape: "Triangle" }],
            Container: sintoonUx.flowchartContainerId,
            DragOptions: { cursor: 'pointer', zIndex: 2000 },
            ConnectionOverlays: [
                ["Arrow", {
                    location: 1,
                    //foldback: 1,
                    foldback: 0.618,
                    visible: true,
                    id: "arrow"
                }],
                ["Label", { location: 0.5, label: "zhu", cssClass: "endpointTargetLabel", visible: true, id: "label" }]
            ]
        });
     
        /// 绘制标签
        sintoonUx.jsPlumbInstance.bind("connection",
            function (connInfo, originalEvent) {
                var connection = connInfo.connection;
                var labelText = connection.sourceId.substring(0, 15) + "-" + connection.targetId.substring(0, 15);
                labelText = Ext.String.format("{0}---{1}", Ext.getCmp(connection.sourceId).flowStage,
                    Ext.getCmp(connection.targetId).flowStage);
                connection.getOverlay("label").setLabel(labelText);
            });
     
        /// 批处理绘制
        sintoonUx.jsPlumbInstance.setSuspendDrawing(true);
        var searchPat = Ext.String.format("#{0} .btnDraggable", sintoonUx.flowchartContainerId);
        var btnDoms = sintoonUx.jsPlumbInstance.getSelector(searchPat);
     
        /// 设置dom元素的可拖拽性
        sintoonUx.jsPlumbInstance.draggable(btnDoms);
     
        /// 建立dom元素之间的连接,绘制连接线,锚点,覆盖物等
        for (var i = 0; i < sintoonUx.btnConfigs.length - 1; i++) {
            sintoonUx.jsPlumbInstance.connect({ reattach: true, source: sintoonUx.btnConfigs[i].btnId, target: sintoonUx.btnConfigs[i + 1].btnId });
        }
     
        /// 强制绘制整个界面
        sintoonUx.jsPlumbInstance.setSuspendDrawing(false, true);

【Jsplumb】Jsplumb基础教程(vue+jsplumb+d3) jsplumb是可以让你在网站上展示图表或者甚至在浏览器应用程序中使用图表的开发框架,该框架适用于必须绘制图表的Web应用程序,例如类似于Visio的应用程序或工作流程设计器等。由于图表项目和连接的所有参数都是非常精细可控的,因此你可以绘制你可以想到的任何类型的图表// 参考D3API,这里会生成树形数据结构// 使用D3 Tree自动布局, nodeSize控制节点x方向和y方向上的距离// 获取自动布局后的节点信息// 获取父子关系列表// 设置节点位置信息return { 阅读详情

相关推荐

jsplumb入门教程及视频教程链接

1. jsplumb 视频教程链接地址 jsplumb视频教程 1.1. 什么是jsplumb? 你有没有想过在你的网站上展示图表或者甚至在浏览器应用程序中使用它? 用jsPlumb你可以!它是完全免费的,并根据MIT许可证提供。您可以直接从jsPlumb github网站下载框架。 jsplumb 其实就是一个绘制流程图 的插件 拓扑图 1.1.1 d3.js : 缺点 不可操控的Dom -...

全栈若城,专注知识分享 1745

Jsplumb从入门到实战

jsplumb是一款非常强大的插件,通过Jsplumb够让你用动态(拖拽)或静态(根据数据渲染)的链接来连接html界面上的元素,Jsplumb可以基于浏览器实现类似Visio等应用程序、工作流设计器、思维导图 等 必须绘制图表的Web应用程序。在实际的开发中由于Jsplumb连接的所有参数都是非常精细可控的,因此通过Jsplumb您可以绘制您可以想到的任何类型的连线图表!

jsplumb-js包.zip

jsplumb-js包.zip

jsplumb 中文基础教程 流程图配置文档

你有没有想过在你的网站上展示图表或者甚至在浏览器应用程序中使用它?用jsPlumb你可以!它是完全免费的,并根据MIT许可证提供。您可以直接从jsPlumb github网站下载框架。该项目主要由Simon Porritt开发,他在澳大利亚西德尼担任网络开发人员。jsPlumb由他积极开发。作为许多优秀的开发人员,他似乎更喜欢开发代码而不是编写教程,这就是为什么我提供一个简单的入门教程。

积极的小可爱~的博客 7394

手把手教你用ROS2 Humble给PX4无人机写个“画圆”程序:从C++代码到Gazebo仿真全流程

本文详细介绍了如何使用ROS2 Humble和PX4飞控实现无人机圆形轨迹控制,涵盖从环境配置、Gazebo仿真到C++代码实现的完整流程。通过实战教程,读者将掌握轨迹跟踪仿真的核心技术,包括ROS2与PX4的通信接口、圆形轨迹算法设计及Gazebo仿真调试技巧。

weixin_29056781的博客 257

从ENVI SARscape到SNAP:手把手教你迁移哨兵1 GRD数据预处理流程(含避坑指南)

本文详细介绍了从ENVI SARscape迁移到SNAP处理哨兵1 GRD数据的全流程,包括工具哲学差异、数据准备注意事项、核心处理流程等效实现及地形校正技巧。特别针对雷达数据预处理中的常见陷阱提供避坑指南,帮助用户高效完成工具迁移并确保结果质量。

weixin_28677005的博客 485

jsplumb 中文基础教程

jsplumb 中文基础教程 https://github.com/wangduanduan/jsplumb-chinese-tutorial 转载于:https://www.cnblogs.com/liuys635/p/10656912.html

weixin_34327761的博客 554

微波射频学习笔记18-------偶极子天线和微波天线设计介绍

几种天线设计方法的介绍 一、偶极子天线 1.天线模型 两根紧挨着的金属导体,长度均为四分之一波长,直径均远小于波长,两导体间距也远小于波长。 2.天线性能的设计因素 ① 单个导体长度L:(光速/频率)/4=四分之一波长(在空气中传播的波长),但在导体中传播,波长会变短; ② 导体半径R:远小于波长即可,使用导电率高些的材料,市面上常见直径零点几毫米就挺好,或者用波长/200,得出一个小200的值,也算远小于波长; ③ 两导体间距S:远小于波长即可,可以比半径更小点。 以上三个变量L、R、S,均可在仿真软件

Sil_sprout 1万+

jsPlumb中文基础教程

jsplumb 中文基础教程Descriptionhttps://wdd.js.org/jsplumb-chinese-tutorial/#/参考学习网址 是一个很好的学习的网站

912

【DICOM后处理】qt+vs 实现DICOM数据四视图显示

方法用于 设置 2D 视图的“向上”方向,即定义图像在屏幕坐标系中的朝向。该方法直接影响影像的显示方向,尤其在多平面重建(MPR)或非标准切面显示时至关重要。:方法用于 设置渲染窗口在屏幕上的显示位置(以像素为单位)。它控制的是 VTK 渲染窗口的左上角在屏幕坐标系中的坐标位置。DICOM四视图通常指同时显示医学影像的四个不同平面或视角,用于全面分析三维数据(如CT、MRI等)。:基于 标量值 设置不透明度(控制不同组织的显示),显示骨骼or显示高密度流体等。默认朝向原点 (0, 0, 0)

weixin_41804847的博客 1325

逆向拆解dy接口a_bogus 1.0.1.19版本核心算法(纯算版)第二部分

本文深入解析了dy接口a_bogus 1.0.1.19版本的核心算法,重点介绍了逆向分析的基础方法论、魔改Base64编码识别与还原、随机数生成与位运算解析等关键技术。通过详细的代码示例和实用技巧,帮助开发者掌握逆向工程中的关键步骤,特别是针对a_bogus参数的生成逻辑和混淆处理。

weixin_29288313的博客 406

Jsplumb基础教程(vue+jsplumb+d3)

【Jsplumb】Jsplumb基础教程(vue+jsplumb+d3)-优快云博客

u013508341的博客 248

激光雷达与相机融合(四)----基于激光雷达与相机的碰撞检测

在这一部分,基于前面的各个部分内容,将利用激光雷达和相机实现目标的检测分类及单目标跟踪,并对车辆前方的车辆目标计算相应的碰撞时间TTC。计算方法分别利用相机和雷达实现。 1.系统的总体架构: 2.TTC计算 简单介绍一下通过激光雷达和相机计算碰撞时间的原理: 利用激光雷达点计算碰撞时间:首先根据检测框聚类出前车目标的点,并过滤掉这些点中的离群点,然后找出这些点中相对于本车最近的点,基于前后两帧以及数据采集频率就可以求解出相对速度,然后用当前帧的距离除以速度得出当前的TTC。但该方法对最近点的选取稳定性不是

张飞飞的博客 3985

jsPlumb的学习使用(一):引入项目和基础示例

jsplumb是一个可以用来实现可视化功能的前端应用库,如果在开发过程中遇到需要实现一些流程图、拓扑图或者是导力图等可视化的功能,就可以使用jsplumb这个库来实现.在文章中,我就不将api具体的每一个参数都罗列出来了,具体每一个配置的参数集文档中都有.我主要是解释一下这些api的作用。

m0_54741495的博客 2317

PCL 点云格式转换【2024最新版】

常见点云格式转化汇总包括txt、stl、csv、ply、obj、xyz、las等。博客长期更新,本文最近一次更新时间为:2024年9月14日,代码更新至PCL1.14.1版本。

点云侠的博客 39万+

保姆级教程:如何将仅限客户端使用的免费大模型(Gemini、Antigravity、Qwen Code、Kiro 等)转为任何应用可调用的 OpenAI 兼容标准接口

大模型 API 费用太贵?💸 这篇文章分享一个薅羊毛神器,能把 Gemini、Qwen Code、Kiro 等客户端专属的免费大模型转换成标准 OpenAI 兼容接口 🔌。支持多协议互转、账户池管理、Web 管理界面,Docker 一键部署,零成本调用 Claude Opus 4.5、Gemini 3 Pro 等高级模型 ✅

XiaoqiangClub的博客 1033

零基础入门:用jsPlumb创建你的第一个流程图

作为一个刚接触流程图开发的新手,我记录下自己的学习过程,希望能帮助到同样想入门的朋友们。不需要自己搭建服务器,点几下就能生成可访问的链接,同学或同事打开就能看到完整的交互效果。:创建一个div作为流程图的画布,设置好宽度、高度和边框样式,这样能直观看到工作区域。:启用jsPlumb的拖拽功能,让流程图中的节点可以自由移动,连接线会自动跟随调整。:通过简单的一行代码就能创建jsPlumb的实例对象,这是后续所有操作的基础。:创建一个按钮,点击后可以在画布中添加新的流程节点,扩展流程图规模。

BlackStone33的博客 988

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JSPLUMB零基础入门:30分钟打造你的第一个流程图

作为一个刚接触流程图绘制的新手,我最近用它完成了第一个可交互的流程图项目,整个过程比想象中简单很多。下面就把我的学习心得整理成笔记,希望能帮到同样想入门JsPlumb的朋友们。我刚开始时没注意CSS定位,导致节点位置混乱,后来改用绝对定位就解决了。为节点添加点击事件显示提示信息时,建议使用CSS实现悬浮效果,而不是alert弹窗,这样体验更流畅。JsPlumb提供了简单的API,但要注意拖拽后需要调用repaint方法重绘连线,否则连线不会跟随节点移动。的在线编辑器,不需要安装任何环境就能开始编码。

SilverfoxOwl19的博客 326

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Jsplumb.js 实现两个div之间动态连线

Jsplumb.js 实现两个div之间动态连线

wwf1225的博客 407

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

3分钟用快马AI生成jsPlumb流程图应用:零基础实现拖拽式架构设计

最近在做一个系统架构设计的项目,需要绘制大量的流程图和拓扑图。传统的绘图工具虽然方便,但缺乏交互性,而且无法直接集成到Web应用中。于是我开始寻找JavaScript库来实现在线流程图编辑功能,最终发现了jsPlumb这个强大的工具。现在这个流程图编辑器已经成功用在了我们的项目中,团队成员可以直接在浏览器中协作设计系统架构图。上,我通过简单的需求描述就生成了一个完整的流程图编辑器项目。上,通过简单的描述就能生成可运行的基础代码,大大降低了入门门槛。上输入你的需求,相信会有惊喜的发现。

IndigoNight21的博客 294

jsPlumb Toolkit一流集成将,程序提供了基础

jsPlumb Toolkit一流集成将,程序提供了基础   JsPlumb Toolkit 为 javascript 开发人员快速构建需要视觉连接的应用程序提供了基础。工具包功能包括:   平移/缩放   一个超级流畅的平移/缩放组件,可以完美地使用鼠标或通过触摸设备上的捏合操作。   jsPlumb Toolkit自动布局   从绝对、弹簧(力导向)、气球或分层中选择。自己编写也是轻而易举的事。   jsPlumb Toolkit声明式呈现   定义一些类型,将它们映射到 HTM.

q2315702359的博客 1079

jsplumb中文文档

1. jsplumb 中文基础教程 1.1. 什么是jsplumb? 1.2. jsplumb能干什么?

qq_21280835的博客 1万+

jsplumb 中文教程

https://wdd.js.org/jsplumb-chinese-tutorial/#/ 1. jsplumb 中文基础教程 后续更新会在仓库:https://github.com/wangduanduan/jsplumb-chinese-tutorial.git 本文的图片是托管于七牛云的,由于使用的是测试域名,可能不知道哪天,图片就无法显示了。不过每个例子都有简单的在线demo...

weixin_30316097的博客 1090

jsplumb php,jsplumb 中文教程 连线绘图工具库介绍 附简单在线demo与实战项目

1. jsplumb 中文基础教程后续的更新会直接在github上,如需查看最新文档,请直接访问原始仓库。另外用了七牛的测试域名做图片托管,现在发现很多图片都无法显示了,建议直接参看git仓库里的, 仓库中的示例图片不是用的七牛云,都能正常显示。仓库地址:1.1. 什么是jsplumb?你有没有想过在你的网站上展示图表或者甚至在浏览器应用程序中使用它?用jsPlumb你可以!它是完全免费的,并根据...

weixin_30496435的博客 582
上一篇: ProcessBuilder使用技巧
下一篇: jsplumb快速使用demo
join_null
博客等级 码龄11年 25粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值