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

vis-timeline未启用堆叠时同排项目删除按钮预留间隙能否消除?

vis-timeline 非堆叠模式下同排项强制间隙解决方案

问题根源

非堆叠(stack: false)模式下的同排项间隙由两部分组成:

  1. 框架默认给同排相邻项设置的10px水平边距
  2. 删除按钮的固定布局占位:仅设置editable.remove: false只会禁用删除功能,不会取消布局层面对删除按钮的宽度预留,这部分预留宽度约20px,和观察到的间隙尺寸一致。

可行实现方案

无需开启堆叠,通过配置+样式调整即可实现项首尾时间相接时无间隙同排排布,同时保留时间段不允许重叠的规则:

  • 调整Timeline初始化配置,核心是关闭删除按钮的布局占位、清零项水平边距:
var options = {
  stack: false, // 保持非堆叠模式
  editable: {
    updateTime: true, // 按需保留拖拽调整时间能力
    updateGroup: true, // 按需保留跨行列拖拽能力
    remove: false // 禁用删除功能
  },
  showButtonDelete: false, // 关键:彻底取消删除按钮的布局占位计算
  margin: {
    item: 0, // 关键:清零同排相邻项的默认水平边距
    axis: 5 // 时间轴与项的边距可按需保留,不影响项之间的间隙
  },
  // 可选:若拖拽时存在时间吸附导致的间隙,可自定义snap逻辑关闭强制吸附
  snap: function (date) {
    return date;
  }
};
  • 补充CSS样式,清除DOM层面的残留间隙:
/* 清除项容器默认内边距 */
.vis-item {
  padding: 0;
}
/* 彻底清除删除按钮的残留占位 */
.vis-item .vis-delete {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
}
/* 可选:给项内容单独加内边距,避免文字贴边,不影响项整体边界计算 */
.vis-item .vis-content {
  padding: 4px 6px;
}

配置完成后,首尾时间相接(前项end值等于后项start值)的项初始化时会自动排布在同一行,拖拽调整时也可完全贴齐,不会被强制换行,也不会出现时间段重叠。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:27:17