当前位置: 首页 > wzjs >正文

宝安网站设计哪家最好中国建设银行官网站安装k宝

宝安网站设计哪家最好,中国建设银行官网站安装k宝,如何生成网址链接,抖音短视频制作教程使用 AntV X6 实现节点全选与画布拖动 引言 在前端开发中,使用 AntV X6 进行图编辑是一种高效的方式,能够支持拖拽、缩放、选择等交互功能。在本文中,我们将探讨如何使用 antv/x6-plugin-selection 插件,实现节点的全选功能&…

使用 AntV X6 实现节点全选与画布拖动

引言

在前端开发中,使用 AntV X6 进行图编辑是一种高效的方式,能够支持拖拽、缩放、选择等交互功能。在本文中,我们将探讨如何使用 @antv/x6-plugin-selection 插件,实现节点的全选功能,并支持鼠标拖动调整视图的位置。

插件下载与安装

在使用 @antv/x6-plugin-selection 插件之前,需要确保已经安装 @antv/x6 以及相关插件。

安装 AntV X6 及插件

使用 npm 或 yarn 进行安装:

npm install @antv/x6 @antv/x6-plugin-selection --save

或使用 yarn:

yarn add @antv/x6 @antv/x6-plugin-selection

安装完成后,即可在代码中引入并使用该插件。

初始化 X6 画布

initializeGraph 方法中,我们创建了 Graph 实例,并配置了一些基础属性,如画布大小、背景颜色、自动缩放、鼠标滚轮缩放等。

代码示例

import { Graph } from "@antv/x6";
import { Selection } from "@antv/x6-plugin-selection";
import { Dnd } from "@antv/x6-plugin-dnd";function initializeGraph() {graph = new Graph({container: proxy.$refs.graphContainer,width: "100%",height: "60%",grid: false, // 关闭网格background: { color: "#ff0000" }, // 设置背景颜色autoResize: true, // 画布自适应panning: true, // 启用画布拖动interactive: true,...baseConfig,mousewheel: {enabled: true,zoomAtMousePosition: true,minScale: 0.5,maxScale: 3,},selecting: {enabled: true,className: "my-selecting", // 自定义选中样式类名},});dnd = new Dnd({target: graph,scaled: false,});// 注册 Selection 插件graph.use(new Selection({enabled: true,multiple: true, // 允许多选rubberband: true, // 允许框选movable: true, // 允许拖拽选中的节点showNodeSelectionBox: true, // 显示选中框pointerEvents: "none",//要加上}));// 绑定快捷键及其他插件baseConfig.bindShortcuts(graph);usePlugins(graph);undoDisabled.value = graph.canUndo();
}

画布拖动与全选功能

为了实现画布拖动,我们需要确保 panning 选项已启用。此外,可以通过 graph.selectAll() 方法,实现节点的全选。

全选节点的实现

function selectAllNodes() {graph.selectAll();
}

拖拽调整视图位置

为了支持画布的拖拽,我们可以监听鼠标事件,并根据鼠标的移动来调整画布的位置。

let startX = 0;
let startY = 0;
let isDragging = false;graph.on("blank:mousedown", ({ e }) => {isDragging = true;startX = e.clientX;startY = e.clientY;
});graph.on("blank:mousemove", ({ e }) => {if (!isDragging) return;const dx = e.clientX - startX;const dy = e.clientY - startY;graph.translate(dx, dy);startX = e.clientX;startY = e.clientY;
});graph.on("blank:mouseup", () => {isDragging = false;
});

优化点

  1. 防止误触:可以在 blank:mousedown 事件中增加条件判断,只有当用户按住某些特定按键(如 Shift)时才触发拖拽。
  2. 支持手动拖拽的开启和关闭:可以提供一个按钮,用户点击后才能启用拖拽功能。
  3. 增强拖拽体验:可以使用 graph.enablePanning() 方法来启用 X6 自带的画布拖拽功能。
graph.enablePanning();

总结

通过本文,我们学习了如何安装并使用 AntV X6 的 @antv/x6-plugin-selection 插件来实现节点的全选,并结合 graph.translate() 实现画布拖动功能。此外,我们还探讨了一些优化方案,以提高交互体验。这样,我们可以在复杂的流程图、DAG(有向无环图)或其他可视化场景中提供更友好的交互体验。


文章转载自:

http://6BdGzgyg.mmjyk.cn
http://JDxRP7ym.mmjyk.cn
http://wWprpgVB.mmjyk.cn
http://dMwblvM8.mmjyk.cn
http://zJDvlGIm.mmjyk.cn
http://JcHketDB.mmjyk.cn
http://c45XhBWX.mmjyk.cn
http://ujunFJHG.mmjyk.cn
http://1LkgHr5H.mmjyk.cn
http://JUE4rRVT.mmjyk.cn
http://Ac77jBCC.mmjyk.cn
http://JkvRPNjj.mmjyk.cn
http://9uViR5bI.mmjyk.cn
http://sbVzqdfw.mmjyk.cn
http://42W3aijN.mmjyk.cn
http://lsk8F28f.mmjyk.cn
http://XEK2nvkK.mmjyk.cn
http://iSqjIoHC.mmjyk.cn
http://wa01T6Mz.mmjyk.cn
http://tRVfdRat.mmjyk.cn
http://rsPEb8Em.mmjyk.cn
http://zrIlU4ff.mmjyk.cn
http://I3Qdp7gv.mmjyk.cn
http://R87ajq2x.mmjyk.cn
http://HBjp3XT2.mmjyk.cn
http://6G3AbSzc.mmjyk.cn
http://FseyJf43.mmjyk.cn
http://ExX68mPz.mmjyk.cn
http://pCfvY1Ib.mmjyk.cn
http://K60EyvWd.mmjyk.cn
http://www.dtcms.com/wzjs/691868.html

相关文章:

  • 易企互联网站建设前端兼职一个静态页面报价
  • 百度网站搜索量提高网站开发和软件开发含义
  • 建设网站的网站空间做门户网站公司
  • 简单的电影网站模板搜索引擎的营销方法有哪些
  • 民宅挂在民宿网站上 保洁谁做工程咨询公司加盟合作
  • 印度网站域名网站文字模板
  • 做料理网站关键词怎么设置网站开发开发需求
  • 哪个网站找做软件网站开发多久能学会
  • 双鸭山网站建设公司营销型网站有哪些类型
  • 六安网站建设六安公众号做淘宝客接入手机网站
  • 青海省建设工程监理协会网站网站备份
  • 仿懒人图库网站源码网站公司建设网站价格
  • 营销网站的宣传、推广与运作做网站攻击
  • wordpress建站门户株洲市建设局网站毛局长
  • 网站设计制作一般多少钱网站建设公司都会有哪些花销
  • 如何做垂直网站wordpress主题多页面
  • 为什么网站建设还要续费一级做爰片免费网站
  • 安庆市住房和城乡建设局网站wordpress 修改时间
  • 目录搜索引擎网站平面设计作品集欣赏
  • 有趣的网站代码磁器口网站建设
  • 手机版网站建设合同范本做一个网站需要哪些资源
  • 延吉 网站建设潮州+网站建设
  • 大兴模版网站建设公司推广类网站
  • 网站在哪里建立垂直电商平台有哪些?
  • 自己做网站的软件嘉兴模板建站定制
  • 网站恶意攻击西安网站建设地址
  • asp网站后台下载网站建设类合同范本
  • 做推广都有什么网站珠海网站建设搭建
  • 网站开发 在线数据库天津 企业网站建设
  • 网站栏目按扭端子东莞网站建设