垂直对齐范围

Align range vertically

我有一个 时间轴,我想对齐范围,以便它显示在两行而不是 4 行上。

我找不到允许我这样做的选项,我已经尝试使用 stack: false 但是 所有 范围都是堆叠的,我失去了可见性在不同的范围内。

我能做到吗?如果是,如何?

这是我现在拥有的:

var groups = new vis.DataSet([
    {id: 2, content: 'Foo'}
  ]);

  var id = 0;

  var items = new vis.DataSet([
    {id: id++, content: 'Charles',                  className:'bg-success', editable: { updateTime: false, updateGroup: true, remove: false }, start: '2018-02-13T18:00:00', end: '2018-02-13T20:00:00', group: 2},
    {id: id++, content: '',                  className:'bg-danger', editable: { updateTime: false, updateGroup: true, remove: false }, start: '2018-02-13T18:00:00', end: '2018-02-13T20:00:00', group: 2},
    {id: id++, content: 'Flavie, Vincent',          className:'bg-warning', editable: { updateTime: true, updateGroup: true, remove: false }, start: '2018-02-13T20:00:00', end: '2018-02-14T08:00:00', group: 2},
    {id: id++, content: 'Nathan',                   className:'bg-success', editable: { updateTime: true, updateGroup: true, remove: false }, start: '2018-02-13T20:00:00', end: '2018-02-14T08:00:00', group: 2},
  ]);

  var container = document.getElementById('visualization');
  var options = {
    editable: true,
    zoomable : false,
    start: new Date(2018,1,13,12,0,0),
    end: new Date(2018,1,14),
  };

  var timeline = new vis.Timeline(container, items, groups, options);
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>

<link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.js"></script>
<body>
<div id="visualization"></div>
</body>

这是我想要得到的:

stack: false 是一个正确的选项,但您还需要正确 group(或 subgroup)您的项目。请参阅下面的代码段:

var options = {
    stack: false,
    editable: true,
    zoomable : false,
    start: new Date(2018,1,13,12,0,0),
    end: new Date(2018,1,14),
};

var groups = new vis.DataSet([
    {id: 1, content: 'Bar'},
    {id: 2, content: 'Foo'}
]);

var id = 0;

var items = new vis.DataSet([
    {id: id++, content: '', className:'bg-danger', editable: { updateTime: false, updateGroup: true, remove: false }, start: '2018-02-13T18:00:00', end: '2018-02-13T20:00:00', group: 1},
    {id: id++, content: 'Nathan', className:'bg-success', editable: { updateTime: true, updateGroup: true, remove: false }, start: '2018-02-13T20:00:00', end: '2018-02-14T08:00:00', group: 1},
    {id: id++, content: 'Charles', className:'bg-success', editable: { updateTime: false, updateGroup: true, remove: false }, start: '2018-02-13T18:00:00', end: '2018-02-13T20:00:00', group: 2},
    {id: id++, content: 'Flavie, Vincent', className:'bg-warning', editable: { updateTime: true, updateGroup: true, remove: false }, start: '2018-02-13T20:00:00', end: '2018-02-14T08:00:00', group: 2},
]);

var container = document.getElementById('visualization');
var timeline = new vis.Timeline(container, items, groups, options);
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />

<link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.js"></script>

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