1.重点参考博文

https://blog.csdn.net/j_bean/article/details/78092647

2.关键点总结

1)实现可视区域图形画满后,拖动整个画布的效果

a.最好不要给画图形的容器预设置很大的宽、高,这样遇到钻牛角尖的用户还是会将画布拖到边界。

b.换个思维,拖动画布时,修改画布上画好的图形的left、top值。比如向右拖动时,增大画布上画好的

所有图形left值。这样看起来的效果好像画布像右动了,其实本质上是画布上东西像右了,而画布并

没有真的移动。

而且这样实现后,无论用户像哪个方向拖动,永远也拖不到尽头

c.修改画好的图形的css样式后,记得最后调用jsPlumb.repaintEverything(),来重新绘制画面。

否则端点会与图形脱离。

d.鼠标拖动效果如果不借助任何插件,可以用onmousedown、onmousemove、onmouseup三个事件共同

配合实现。

onmousedown当鼠标按下:设置按下标志置为true,并记录当前的鼠标指针的位置

onmousemove当鼠标移动:判断鼠标按下标志,如果按下了,则开始拖动逻辑(即修改被拖动

元素的css样式)。用当前鼠标位置和onmousedown事件记录的位置就能

计算出拖动的距离。

onmouseup当鼠标抬起:将鼠标按下标志置为false

2)jsPlumb.bind()方法可以给线绑定事件

3)两个图形之间只能画1条线的效果

jsPlumb.bind("connection", function (conn, originalEvent) {

//查看被连接的两个点间是否已经连接过

var conns=jsPlumb.getConnections({

source:conn.sourceId,

target:conn.targetId

});

//如果大于1条,则不在进行连接

if(conns.length>1){

jsPlumb.detach(conn);

}

});

4)当一个图形上有多个点,用jsPlumb.connect()方法控制画具体哪两个端点间的线,使用uuids

a.  jsPlumb.connect( {uuids:[sourceUUid,targetUUid]} )//画具体哪两个点间的线

jsPlumb.connect( {source:123,target:456} )//用这个时jsplumb会随机的选择图形上的两个端点进行连接

b.  uuid属于endpoint,uuid在添加端点时指定

var  port = jsPlumb.addEndpoint(id, { anchors: "TopCenter",uuid:123456789}, upport);

port.getUuid()//获得端点的uuid

3)重要api

connection.getUuids()//获得连接线两个端点的UUID,返回为一个数组 [sourceUuid, targetUuid]

jsPlumbUtil.uuid() //生成id

4)放大缩小

https://bitqiang.gitbooks.io/jsplumb/content/Chapter1_IMPORTS_AND_SETUP/section1.html

---------------------

作者:join_null

来源:CSDN

原文:https://blog.csdn.net/join_null/article/details/80266993

版权声明:本文为博主原创文章,转载请附上博文链接!

原文:https://www.cnblogs.com/zzsdream/p/10913815.html

jsplumb拖线_基于jsplumb插件制作可拖拽、保存流程图、重绘保存后的流程图总结...相关推荐

  1. jsplumb拖线_基于 jsPlumb 的流程图编辑器的实现 (二,连接线的操作)

    连接线支持单击选中,backspace 和 delete 可删除:双击可以为连接线添加 label. 完整代码: /** * 单击删除连线 * */ clickLine:function(){ var ...

  2. jsplumb拖线_利用jsPlumb实现基于Html5拖拽连线

    jsPlumb是一个强大的JavaScript连线库,它可以将html中的元素用箭头.曲线.直线等连接起来,适用于开发Web上的图表.建模工具等.它同时支持jQuery+jQuery UI.MooTo ...

  3. TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法

    TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法 一. 模拟量输入块:创建FB,定义块的接口,如下图所示: 程序中包含了高报警,低报警,一般上位机报警需要这个变量. 极性选择,适合更广的应 ...

  4. vue canvas插件_基于vue.js 制作在线桌椅定制选择交互特效源码

    码农那点事儿 关注我们,一起学习进步 基于vue.js写的在线桌子椅子垫子选择拼成的自己理想的书桌椅图像,这是一款交互式的课桌椅在线定制选择功能.非常不错,感兴趣的朋友前来下载使用. 下载源码(提取码 ...

  5. java 计算移动平均线_基于Java语言开发的个性化股票分析技术:移动平均线(MA)...

    基于Java语言开发的个性化股票分析技术:移动平均线(MA) 基于 Java 语言开发的个性化股票分析技术:移动平均线(MA)移动平均线(MA)是以道·琼斯的"平均成本概念"为理论 ...

  6. 移动端实现元素拖拽效果插件_基于自然流布局的可视化拖拽搭建平台设计方案...

    LowCode 是高效.高性能的拖拽式低代码开发平台. 也是笔者最近一直在研究的方向, 对于可视化搭建平台的实现方案笔者之前写过很多文章, 这里带大家探索一个新方向--基于自然流布局的可视化搭建平台. ...

  7. 基于BlenderGIS插件制作智慧城市三维场景

    一,建筑模型生成 A:获取数据方法(基于openstreetmap) 1,从openstreetmap上下载建筑矢量面数据,下载地址:https://www.openstreetmap.org 2,从 ...

  8. vue可视化拖拽组件模板_基于 Vue 丝滑般拖拽排序组件VueSlicksort

    今天给大家分享一个功能超强的自由拖拽排序组件VueSlicksort. vue-slicksort 一款功能强大的可拖拽的vue.js组件.拥有丝滑般拖拽动画效果,支持水平/垂直/网格拖拽排序.还可以 ...

  9. yzmcms图片自适应代码_基于segment.js制作的非常有创意的分段式SVG文字动画特效...

    [温馨提示]源码包解压密码:www.youhutong.com 效果图: 描述说明: 要使用该SVG文字动画特效,要在页面中引入segment.js,它用于动画SVG路径,d3-ease,用于制作ea ...

最新文章

  1. property Alternative forms propretie
  2. mock模拟的数据能增删改查吗_使用Swager API Docs和easy-mock生成模拟数据
  3. webpack与vue环境搭建(转载)
  4. uboot: RTL8201 100M PHY驱动代码
  5. python process_Python Process/Thread 概念整理
  6. bdc注意清空bdcdata【否则bdc可能…
  7. acrobat 控件可以发布吗_自己能做小程序商城吗?可以发布使用吗
  8. 广数928te_广数928te钻孔程序怎么编?
  9. 如何提高程序员的键盘使用效率之我见
  10. JAVA程序员就业面试题大全
  11. jsp网站用什么虚拟主机
  12. 硬件安装——联想笔记本安装固态硬盘
  13. 正弦和余弦(sin和cos)
  14. 日本计划建造世界上速度最快的超级计算机
  15. 体积小性能强悍能吃鸡的电脑主机 NUC8I7HVK
  16. DM6467T移植图像算法
  17. 亲爱的老狼-display的应用
  18. jmeter 命令行模式(非GUI)运行脚本,察看结果树结果为空,解决办法;
  19. python 玩耍天地
  20. 复合管、达林顿管(UL2003、ULN2803)了解

热门文章

  1. python编程运算符号-Python中的逻辑运算符
  2. 虚拟服务器关机返回用户信息,在Linux服务器关机前向用户显示一条自定义消息...
  3. python中要使用导入全部的是什么符号-在python格式字符串中使用标点符号
  4. JavaScript中带示例的String repeat()方法
  5. java自定义线程池池,线程池使用及自定义线程池
  6. tcp 发送 最大数据量_网络基础知识夯实总结(三):TCP协议
  7. 场效应管原理_场效应管——不就是一个电控开关?
  8. 浙江大学计算机学院研究生论文盲审,浙江理工大学研究生学位论文盲审实施办法...
  9. 芭比扣了!Nacos中服务删除不了,肿么办?
  10. 第 3-1 课:集合详解(上) + 面试题