Javascript 如何在visjs时间线中按时间顺序获取getVisibleItems(或如何获取上一个项目)
我需要为我的时间线图表创建一个自定义的水平轴标签。当两天很近,图表很小的时候。两个水平轴标签重叠。我想知道当有重叠时,如何跳过一个或两个标签 我所做的方法是获取可见光点位置,然后为可见光点位置上方的标签创建一个divJavascript 如何在visjs时间线中按时间顺序获取getVisibleItems(或如何获取上一个项目),javascript,vis.js,Javascript,Vis.js,我需要为我的时间线图表创建一个自定义的水平轴标签。当两天很近,图表很小的时候。两个水平轴标签重叠。我想知道当有重叠时,如何跳过一个或两个标签 我所做的方法是获取可见光点位置,然后为可见光点位置上方的标签创建一个div var labeloffset = $(".vis-item.vis-dot."+item.id).offset().left; 我使用getVisibleItems()方法获取所有可见项。但问题是它不符合时间顺序 var allVisableTtems=timeline.get
var labeloffset = $(".vis-item.vis-dot."+item.id).offset().left;
我使用getVisibleItems()方法获取所有可见项。但问题是它不符合时间顺序
var allVisableTtems=timeline.getVisibleItems()
我需要两方面的帮助:
感谢您的帮助。您可以通过直接操作数据本身对项目进行排序并获取以前的项目
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
,自己创建一些链表