You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

vis-network中如何实现默认隐藏节点标签、选中节点时才显示标签?

vis-network 默认隐藏节点标签、选中时显示配置方案

方案1:仅选中时显示标签(基于chosen.label回调)

直接在网络图初始化配置的nodes字段中添加以下配置即可实现需求,节点本身存储的label属性无需修改:

const networkOptions = {
  nodes: {
    // 全局默认配置:标签字体大小设为0,默认不渲染
    font: {
      size: 0
    },
    chosen: {
      // 节点交互状态变更时的标签回调
      label: (values, id, selected, hovering) => {
        // 仅当节点被选中时,调整标签样式为可见
        if (selected) {
          // 可自定义选中时的标签大小、颜色等属性
          values.size = 14;
          values.color = "#2b7ce9";
        }
        return values;
      }
    }
  }
}

如果需要 hover 节点时也显示标签,把判断条件改为if(selected || hovering)即可。

注:scaling.label是控制画布缩放时标签的缩放规则,无法覆盖默认显隐逻辑,因此相关方案不生效。


方案2:复选框全局控制所有标签显隐

如果需要支持手动切换全量标签的显隐状态,可通过动态更新节点属性实现:

// 复选框change事件监听
document.getElementById("toggleLabelBtn").addEventListener("change", (e) => {
  const isShowAll = e.target.checked;
  // 批量更新所有节点的标签字体大小
  allNodes.update(allNodes.get().map(item => ({
    ...item,
    font: { ...item.font, size: isShowAll ? 14 : 0 }
  })));
  // 刷新网络图
  networkInstance.refresh();
})

内容的提问来源于stack exchange,提问作者Ooker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:15:03