Timeline Vis - 使用子组排序强制子组 2 在子组 1 之后

Posted

技术标签:

【中文标题】Timeline Vis - 使用子组排序强制子组 2 在子组 1 之后【英文标题】:Timeline Vis - Force Subgroup 2 to come after Subgroup 1 using subgroup ordering 【发布时间】:2019-05-26 01:05:40 【问题描述】:

我有一个时间线,其中有 3 个子组 1、2 和 3。在子组 2 中,我有 2 个项目,分别名为“B”和“BB”。我使用自定义子组排序创建了时间线。在输出中,我将 BB 置于顶部,然后将项目 A 和 C 置于 BB 之下,最后将 B 置于最后,即使 BB 和 B 共享相同的子组 2。 我想要的是,A 出现在顶部,然后 B 和 BB 在 A 下方聚集在一起,最后是 C。基本上,我希望子组总是看起来像一个集群,并在时间轴上在一起。

链接到非工作示例 - Demo

HTML

<body>
  <div id="visualization"></div>
</body>

JS

function customSubgroupOrder(a, b) 
  return b.subgroup - a.subgroup;


var items = [
  id: 1,
  group: "X",
  content: "A",
  subgroup: 1,
  start: "2016-01-01",
  end: "2016-01-31"
, 
  id: 2,
  group: "X",
  content: "B",
  subgroup: 2,
  start: "2016-01-15",
  end: "2016-02-29"
, 
  id: 4,
  group: "X",
  content: "BB",
  subgroup: 2,
  start: "2016-01-19",
  end: "2016-02-21"
, 
  id: 3,
  group: "X",
  content: "C",
  subgroup: 3,
  start: "2016-02-15",
  end: "2016-02-29"
];
var groups = [
  id: "X",
  content: "Custom Ordering<br>Top-to-Bottom",
  subgroupOrder: customSubgroupOrder
];
var options = 
  stack: true
;

var el = document.getElementById('visualization');
var timeline = new vis.Timeline(el, items, groups, options);

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您应该将subgroupStack:true 选项添加到x 组中,它会将其子组堆叠在每个组的顶部。你可以找到一个工作演示here。

【讨论】:

以上是关于Timeline Vis - 使用子组排序强制子组 2 在子组 1 之后的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个包含子组的 Ansible 组,不包括子组?

如何获得 XMPP 子组?

基数排序

python正则子组匹配

获取组的所有子组[重复]

ExpandableListView 显示没有子组的指示符