Javascript 如何在visjs时间线中按时间顺序获取getVisibleItems(或如何获取上一个项目)

Javascript 如何在visjs时间线中按时间顺序获取getVisibleItems(或如何获取上一个项目),javascript,vis.js,Javascript,Vis.js,我需要为我的时间线图表创建一个自定义的水平轴标签。当两天很近,图表很小的时候。两个水平轴标签重叠。我想知道当有重叠时,如何跳过一个或两个标签 我所做的方法是获取可见光点位置,然后为可见光点位置上方的标签创建一个div var labeloffset = $(".vis-item.vis-dot."+item.id).offset().left; 我使用getVisibleItems()方法获取所有可见项。但问题是它不符合时间顺序 var allVisableTtems=timeline.get

我需要为我的时间线图表创建一个自定义的水平轴标签。当两天很近,图表很小的时候。两个水平轴标签重叠。我想知道当有重叠时,如何跳过一个或两个标签

我所做的方法是获取可见光点位置,然后为可见光点位置上方的标签创建一个div

var labeloffset = $(".vis-item.vis-dot."+item.id).offset().left;
我使用getVisibleItems()方法获取所有可见项。但问题是它不符合时间顺序

var allVisableTtems=timeline.getVisibleItems()

我需要两方面的帮助:

  • 按时间顺序获取可见项。 即,AllVisableTems列表前面的最早项和AllVisableTems列表末尾的最晚项

  • 有什么方法可以让我在时间线图上看到前一项吗


  • 感谢您的帮助。

    您可以通过直接操作数据本身对项目进行排序并获取以前的项目

    var ids = timeline.getVisibleItems();
    var sortedVisibleItems = items.get(ids).sort(function (a,b) { 
      return a.start > b.start ? 1 : a.start < b.start ? -1 : 1
    });
    
    var index = sortedVisibleItems.indexOf(someItem);
    var prevItem = sortedVisibleItems[index - 1];
    
    var id=timeline.getVisibleItems();
    var sortedVisibleItems=items.get(id).sort(函数(a,b){
    返回a.start>b.start?1:a.start
    您还可以通过向每个项目或类似的内容添加字段
    prevId
    nextId
    ,自己创建一些链表