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

LogicFlow 学习笔记——11. 对齐线 和 键盘快捷键

对齐线 Snapline

对齐线能够在节点移动过程中,将移动节点的位置与画布中其他节点位置进行对比,辅助位置调整。位置对比有如下两个方面。

  • 节点中心位置
  • 节点的边框

对齐线使用

普通编辑模式下,默认开启对齐线,也可通过配置进行关闭。 在静默模式下,无法移动节点,所以关闭了对齐线功能,无法通过配置开启。

对齐线样式设置

// 关闭对齐线功能
const lf = new LogicFlow({
  snapline: false,
});

更多样式修改参见主题

键盘快捷键 Keyboard

快捷键配置

通过创建 LogicFlow 实例时传入 options 的 keyboard 属性可以开启快捷键, 可以只配置 enabled 属性,为 true 时,代表开启默认的快捷键。

const lf = new LogicFlow({
  container: document.querySelector("#app"),
  keyboard: {
    enabled: true,
  },
});

内置快捷键功能

LogicFlow 内置了复制,粘贴,redo/undo,删除 的快捷键。

快捷键功能
cmd+c 或 ctrl+c复制节点
cmd+v 或 ctrl + v粘贴节点
cmd+z 或 ctrl+z撤销操作
cmd+y 或 ctrl+y回退操作
backspace删除操作

自定义快捷键

shortcuts 则可以定义用户自定义的一组快捷键 值得一提的是 keys 的规则,与mousetrap一致。
以自定义删除功能为例,在删除之前添加一个确认操作。

const lf = new LogicFlow({
  // ...
  keyboard: {
    enabled: true,
    shortcuts: [
      {
        keys: ["backspace"],
        callback: () => {
          const r = window.confirm("确定要删除吗?");
          if (r) {
            const elements = lf.getSelectElements(true);
            lf.clearSelectElements();
            elements.edges.forEach((edge) => lf.deleteEdge(edge.id));
            elements.nodes.forEach((node) => lf.deleteNode(node.id));
          }
        },
      },
    ],
  },
});

相关文章:

  • Android应用保活实践
  • CARLA自动驾驶模拟器基础
  • 深入理解 JS/TS 中的 filter 方法及其布尔值筛选功能
  • 移动端 UI 风格,诠释精致
  • 【计算机体系结构】
  • 啥移动硬盘格式能更好兼容Windows和Mac系统 NTFS格式苹果电脑不能修改 paragon ntfs for mac激活码
  • getPhysicalNumberOfCells获取列数不是合并前实际列数
  • Linux操作系统
  • vos3000外呼系统通话会话超时中断详解
  • Day10—Spark SQL基础
  • HTML(12)——背景属性
  • React@16.x(34)动画(中)
  • 【linuxC语言】第一个简单的TCP/IP服务器
  • 智慧校园综合门户有哪些特点?
  • RTSP协议分析与安全实践
  • 计算机组成原理 —— 存储系统(DRAM和SRAM,ROM)
  • [Django学习]Q对象实现多字段模糊搜索
  • ping命令返回结果实例分析
  • 【LinuxC语言】阻塞、回调与轮询快速理解
  • 压力测试Monkey命令参数和报告分析
  • 汪明荃,今生不负你
  • 少年中国之少年的形塑
  • 定位真核生物起源于约27.2亿年前,华东师大团队在《自然》发文
  • 现场|万米云端,遇见上博
  • 中方对中美就关税谈判的立场发生变化?外交部:中方立场没有任何改变
  • 应对美政策调整:中国重在开放与创新,维护好数据主权