logo

X6

  • 文档
  • API
  • 图表示例
  • 常见问题
  • 更新日志
  • XFlow
  • 所有产品antv logo arrow
  • 2.x
  • 画布
    • 画布
    • 网格
    • 背景
    • 画布平移
    • 画布缩放
    • 视口变换
    • 坐标系
  • 元素
    • 元素
    • 节点
    • 边
    • 标签
    • 箭头
    • 元素属性
    • 交互
  • MVC
    • 模型
    • 视图
  • 扩展
    • 节点工具
    • 边上工具
    • 路由
    • 连接器
    • 节点的锚点
    • 边的锚点
    • 连接点
    • 连接桩布局
    • 连接桩标签布局
    • 属性
    • 高亮器
    • 滤镜

高亮器

上一篇
属性
下一篇
滤镜

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

节点/边的高亮器,用于高亮指定的元素。X6 内置了以下几种高亮器。

名称说明
stroke边框高亮器,沿元素的包围盒渲染一个高亮的边框。
className样式名高亮器,通过添加额外的样式名来高亮元素。

创建 Graph 时,可以通过 highlighting 选项来指定触发某种交互时的高亮样式,如:

new Graph({
highlighting: {
// 当连接桩可以被链接时,在连接桩外围渲染一个 2px 宽的红色矩形框
magnetAvailable: {
name: 'stroke',
args: {
padding: 4,
attrs: {
'stroke-width': 2,
stroke: 'red',
},
},
},
},
})

支持的 highlighting 配置项有:

  • 'default' 默认高亮选项,当以下几种高亮配置缺省时被使用。
  • 'embedding' 拖动节点进行嵌入操作过程中,节点可以被嵌入时被使用。
  • 'nodeAvailable' 连线过程中,节点可以被链接时被使用。
  • 'magnetAvailable' 连线过程中,连接桩可以被链接时被使用。
  • 'magnetAdsorbed' 连线过程中,自动吸附到连接桩时被使用。

内置高亮器

stroke

边框高亮器,沿元素的包围盒渲染一个高亮的边框。

参数名类型默认值说明
rxnumber0边框倒角。
rynumber0边框倒角。
paddingnumber3边距。
attrsobject{ 'stroke-width': 3, stroke: '#FEB663' }边框元素属性。

className

样式名高亮器,通过添加额外的样式名来高亮元素。

参数名类型默认值说明
classNamestringx6-highlighted样式名。

自定义高亮器

高亮器是一个具有如下签名的对象,该对象中包含 highlight 和 unhighlight 两个方法,分别用于高亮和取消高亮元素。

export interface Definition<T> {
highlight: (cellView: CellView, magnet: Element, options: T) => void
unhighlight: (cellView: CellView, magnet: Element, options: T) => void
}
参数名类型默认值说明
cellViewCellView视图。
magnetElement被高亮的元素。
optionsT高亮选项。

下面我们来定义一个名为 opacity 的高亮器,该高亮器为元素添加一个 'highlight-opacity' 样式名。

export interface OpacityHighlighterOptions {}
const className = 'highlight-opacity'
export const opacity: Highlighter.Definition<OpacityHighlighterOptions> = {
highlight(cellView, magnet) {
Dom.addClass(magnet, className)
},
unhighlight(cellView, magnetEl) {
Dom.removeClass(magnetEl, className)
},
}

完成定义后就可以注册我们的高亮器:

Graph.registerHighlighter('opacity', opacity, true)

然后我们就可以通过 opacity 字符串来使用该高亮器了:

new Graph({
highlighting: {
magnetAvailable: {
name: 'opacity',
},
},
})