- jsPlumb概述
jsPlumb是一个在dom元素之间绘制连接线的javascript框架,它使用svg技术绘制连接线。 - 基本概念
很明显,一个连线主要要解决的问题包括谁和谁连,在哪里连(连接点在哪里),连接点长啥样,如何画线等问题
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,StraightOverlay
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" }]
] - 几个需要注意的地方:
1:所有的子元素在一个父容器中,并且子元素都要使用绝对布局
position: absolute;
2:端点可以通过样式隐藏,直接使用"Blank"报错了。
3:性能,在多个连接的时候,需要使用批处理模式来绘制。
sintoonUx.jsPlumbInstance.setSuspendDrawing(true)
sintoonUx.jsPlumbInstance.setSuspendDrawing(false, true);
4:设置可拖拽
sintoonUx.jsPlumbInstance.draggable(btnDoms); - 使用范例1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
drawConnectLine:function() {varsintoonUx =this;/// 定义锚点的位置vardefaultAnchors = ["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) {varconnection = connInfo.connection;varlabelText = 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);varsearchPat = Ext.String.format("#{0} .btnDraggable", sintoonUx.flowchartContainerId);varbtnDoms = sintoonUx.jsPlumbInstance.getSelector(searchPat);/// 设置dom元素的可拖拽性sintoonUx.jsPlumbInstance.draggable(btnDoms);/// 建立dom元素之间的连接,绘制连接线,锚点,覆盖物等for(vari = 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入门教程及视频教程链接
1. jsplumb 视频教程链接地址 jsplumb视频教程 1.1. 什么是jsplumb? 你有没有想过在你的网站上展示图表或者甚至在浏览器应用程序中使用它? 用jsPlumb你可以!它是完全免费的,并根据MIT许可证提供。您可以直接从jsPlumb github网站下载框架。 jsplumb 其实就是一个绘制流程图 的插件 拓扑图 1.1.1 d3.js : 缺点 不可操控的Dom -...
Jsplumb从入门到实战
jsplumb是一款非常强大的插件,通过Jsplumb够让你用动态(拖拽)或静态(根据数据渲染)的链接来连接html界面上的元素,Jsplumb可以基于浏览器实现类似Visio等应用程序、工作流设计器、思维导图 等 必须绘制图表的Web应用程序。在实际的开发中由于Jsplumb连接的所有参数都是非常精细可控的,因此通过Jsplumb您可以绘制您可以想到的任何类型的连线图表!
jsplumb-js包.zip
jsplumb-js包.zip
jsplumb 中文基础教程 流程图配置文档
你有没有想过在你的网站上展示图表或者甚至在浏览器应用程序中使用它?用jsPlumb你可以!它是完全免费的,并根据MIT许可证提供。您可以直接从jsPlumb github网站下载框架。该项目主要由Simon Porritt开发,他在澳大利亚西德尼担任网络开发人员。jsPlumb由他积极开发。作为许多优秀的开发人员,他似乎更喜欢开发代码而不是编写教程,这就是为什么我提供一个简单的入门教程。
手把手教你用ROS2 Humble给PX4无人机写个“画圆”程序:从C++代码到Gazebo仿真全流程
本文详细介绍了如何使用ROS2 Humble和PX4飞控实现无人机圆形轨迹控制,涵盖从环境配置、Gazebo仿真到C++代码实现的完整流程。通过实战教程,读者将掌握轨迹跟踪仿真的核心技术,包括ROS2与PX4的通信接口、圆形轨迹算法设计及Gazebo仿真调试技巧。
从ENVI SARscape到SNAP:手把手教你迁移哨兵1 GRD数据预处理流程(含避坑指南)
本文详细介绍了从ENVI SARscape迁移到SNAP处理哨兵1 GRD数据的全流程,包括工具哲学差异、数据准备注意事项、核心处理流程等效实现及地形校正技巧。特别针对雷达数据预处理中的常见陷阱提供避坑指南,帮助用户高效完成工具迁移并确保结果质量。
jsplumb 中文基础教程
jsplumb 中文基础教程 https://github.com/wangduanduan/jsplumb-chinese-tutorial 转载于:https://www.cnblogs.com/liuys635/p/10656912.html
微波射频学习笔记18-------偶极子天线和微波天线设计介绍
几种天线设计方法的介绍 一、偶极子天线 1.天线模型 两根紧挨着的金属导体,长度均为四分之一波长,直径均远小于波长,两导体间距也远小于波长。 2.天线性能的设计因素 ① 单个导体长度L:(光速/频率)/4=四分之一波长(在空气中传播的波长),但在导体中传播,波长会变短; ② 导体半径R:远小于波长即可,使用导电率高些的材料,市面上常见直径零点几毫米就挺好,或者用波长/200,得出一个小200的值,也算远小于波长; ③ 两导体间距S:远小于波长即可,可以比半径更小点。 以上三个变量L、R、S,均可在仿真软件
jsPlumb中文基础教程
jsplumb 中文基础教程Descriptionhttps://wdd.js.org/jsplumb-chinese-tutorial/#/参考学习网址 是一个很好的学习的网站
【DICOM后处理】qt+vs 实现DICOM数据四视图显示
方法用于 设置 2D 视图的“向上”方向,即定义图像在屏幕坐标系中的朝向。该方法直接影响影像的显示方向,尤其在多平面重建(MPR)或非标准切面显示时至关重要。:方法用于 设置渲染窗口在屏幕上的显示位置(以像素为单位)。它控制的是 VTK 渲染窗口的左上角在屏幕坐标系中的坐标位置。DICOM四视图通常指同时显示医学影像的四个不同平面或视角,用于全面分析三维数据(如CT、MRI等)。:基于 标量值 设置不透明度(控制不同组织的显示),显示骨骼or显示高密度流体等。默认朝向原点 (0, 0, 0)
逆向拆解dy接口a_bogus 1.0.1.19版本核心算法(纯算版)第二部分
本文深入解析了dy接口a_bogus 1.0.1.19版本的核心算法,重点介绍了逆向分析的基础方法论、魔改Base64编码识别与还原、随机数生成与位运算解析等关键技术。通过详细的代码示例和实用技巧,帮助开发者掌握逆向工程中的关键步骤,特别是针对a_bogus参数的生成逻辑和混淆处理。
Jsplumb基础教程(vue+jsplumb+d3)
【Jsplumb】Jsplumb基础教程(vue+jsplumb+d3)-优快云博客
激光雷达与相机融合(四)----基于激光雷达与相机的碰撞检测
在这一部分,基于前面的各个部分内容,将利用激光雷达和相机实现目标的检测分类及单目标跟踪,并对车辆前方的车辆目标计算相应的碰撞时间TTC。计算方法分别利用相机和雷达实现。 1.系统的总体架构: 2.TTC计算 简单介绍一下通过激光雷达和相机计算碰撞时间的原理: 利用激光雷达点计算碰撞时间:首先根据检测框聚类出前车目标的点,并过滤掉这些点中的离群点,然后找出这些点中相对于本车最近的点,基于前后两帧以及数据采集频率就可以求解出相对速度,然后用当前帧的距离除以速度得出当前的TTC。但该方法对最近点的选取稳定性不是
jsPlumb的学习使用(一):引入项目和基础示例
jsplumb是一个可以用来实现可视化功能的前端应用库,如果在开发过程中遇到需要实现一些流程图、拓扑图或者是导力图等可视化的功能,就可以使用jsplumb这个库来实现.在文章中,我就不将api具体的每一个参数都罗列出来了,具体每一个配置的参数集文档中都有.我主要是解释一下这些api的作用。
PCL 点云格式转换【2024最新版】
常见点云格式转化汇总包括txt、stl、csv、ply、obj、xyz、las等。博客长期更新,本文最近一次更新时间为:2024年9月14日,代码更新至PCL1.14.1版本。
保姆级教程:如何将仅限客户端使用的免费大模型(Gemini、Antigravity、Qwen Code、Kiro 等)转为任何应用可调用的 OpenAI 兼容标准接口
大模型 API 费用太贵?💸 这篇文章分享一个薅羊毛神器,能把 Gemini、Qwen Code、Kiro 等客户端专属的免费大模型转换成标准 OpenAI 兼容接口 🔌。支持多协议互转、账户池管理、Web 管理界面,Docker 一键部署,零成本调用 Claude Opus 4.5、Gemini 3 Pro 等高级模型 ✅
零基础入门:用jsPlumb创建你的第一个流程图
作为一个刚接触流程图开发的新手,我记录下自己的学习过程,希望能帮助到同样想入门的朋友们。不需要自己搭建服务器,点几下就能生成可访问的链接,同学或同事打开就能看到完整的交互效果。:创建一个div作为流程图的画布,设置好宽度、高度和边框样式,这样能直观看到工作区域。:启用jsPlumb的拖拽功能,让流程图中的节点可以自由移动,连接线会自动跟随调整。:通过简单的一行代码就能创建jsPlumb的实例对象,这是后续所有操作的基础。:创建一个按钮,点击后可以在画布中添加新的流程节点,扩展流程图规模。
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
JSPLUMB零基础入门:30分钟打造你的第一个流程图
作为一个刚接触流程图绘制的新手,我最近用它完成了第一个可交互的流程图项目,整个过程比想象中简单很多。下面就把我的学习心得整理成笔记,希望能帮到同样想入门JsPlumb的朋友们。我刚开始时没注意CSS定位,导致节点位置混乱,后来改用绝对定位就解决了。为节点添加点击事件显示提示信息时,建议使用CSS实现悬浮效果,而不是alert弹窗,这样体验更流畅。JsPlumb提供了简单的API,但要注意拖拽后需要调用repaint方法重绘连线,否则连线不会跟随节点移动。的在线编辑器,不需要安装任何环境就能开始编码。
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
Jsplumb.js 实现两个div之间动态连线
Jsplumb.js 实现两个div之间动态连线
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
3分钟用快马AI生成jsPlumb流程图应用:零基础实现拖拽式架构设计
最近在做一个系统架构设计的项目,需要绘制大量的流程图和拓扑图。传统的绘图工具虽然方便,但缺乏交互性,而且无法直接集成到Web应用中。于是我开始寻找JavaScript库来实现在线流程图编辑功能,最终发现了jsPlumb这个强大的工具。现在这个流程图编辑器已经成功用在了我们的项目中,团队成员可以直接在浏览器中协作设计系统架构图。上,我通过简单的需求描述就生成了一个完整的流程图编辑器项目。上,通过简单的描述就能生成可运行的基础代码,大大降低了入门门槛。上输入你的需求,相信会有惊喜的发现。
jsPlumb Toolkit一流集成将,程序提供了基础
jsPlumb Toolkit一流集成将,程序提供了基础 JsPlumb Toolkit 为 javascript 开发人员快速构建需要视觉连接的应用程序提供了基础。工具包功能包括: 平移/缩放 一个超级流畅的平移/缩放组件,可以完美地使用鼠标或通过触摸设备上的捏合操作。 jsPlumb Toolkit自动布局 从绝对、弹簧(力导向)、气球或分层中选择。自己编写也是轻而易举的事。 jsPlumb Toolkit声明式呈现 定义一些类型,将它们映射到 HTM.
jsplumb中文文档
1. jsplumb 中文基础教程 1.1. 什么是jsplumb? 1.2. jsplumb能干什么?
jsplumb 中文教程
https://wdd.js.org/jsplumb-chinese-tutorial/#/ 1. jsplumb 中文基础教程 后续更新会在仓库:https://github.com/wangduanduan/jsplumb-chinese-tutorial.git 本文的图片是托管于七牛云的,由于使用的是测试域名,可能不知道哪天,图片就无法显示了。不过每个例子都有简单的在线demo...
jsplumb php,jsplumb 中文教程 连线绘图工具库介绍 附简单在线demo与实战项目
1. jsplumb 中文基础教程后续的更新会直接在github上,如需查看最新文档,请直接访问原始仓库。另外用了七牛的测试域名做图片托管,现在发现很多图片都无法显示了,建议直接参看git仓库里的, 仓库中的示例图片不是用的七牛云,都能正常显示。仓库地址:1.1. 什么是jsplumb?你有没有想过在你的网站上展示图表或者甚至在浏览器应用程序中使用它?用jsPlumb你可以!它是完全免费的,并根据...
1745



被折叠的 条评论
为什么被折叠?



