2016-03-08 52 views
0

我需要爲我的時間軸圖表創建一個自定義的Horizo​​ntal Axis標籤。當兩天非常接近,圖表很小時。兩個水平軸標籤重疊。我想知道如何在重疊時跳過一兩個標籤?如何在visjs時間軸中按時間順序獲取getVisibleItems(或如何獲取上一個項目)

我做的方式是獲得可見點位置,然後創建一個div上面可見點位置

var labeloffset = $(".vis-item.vis-dot."+item.id).offset().left; 

標籤我用getVisibleItems()方法來獲取所有可見的物品。但問題在於它不及時。

var allVisableTtems = timeline.getVisibleItems();

我需要幫助在兩個方面:

  1. 得到visibleItems按時間順序。 即在allVisableTtems列表

  2. 末在allVisableTtems列表前面的最早的項目,最新的產品有什麼辦法可以在時間軸圖獲得前一個項目

感謝你的幫助。

回答

0

您可以通過對數據本身的直接操作來對項目進行排序並獲取以前的項目。

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]; 

你也可以通過添加字段prevIdnextId到每一個項目或類似的東西,創造一些鏈接列表自己。

+0

謝謝喬斯!這工作。 – Steve

+0

好,所以你可以接受答案? –

+0

是的,謝謝喬斯! – Steve

相關問題