2016-07-04 67 views
0

我寫了一個使用vis.js時間表,側重於當前日期上的一個按鈕的點擊的程序:如何自動立足當前日期vis.js時間表

<button type="button" class="btn btn-info" onclick="timeline.focus(0)">Focus on current date</button>

其中

var timeline = new vis.Timeline(container, data, options);

var data = [ //create an item in the dataset corresponding to the current date {id: 0, content: 'today', start: Date()},...];

現在我想讓時​​間線自動關注用戶更改範圍時的當前日期。我試圖用rangechange事件:

timeline.on('rangechange', function (properties) { timeline.focus(0); });

,但重點不按預期發生。

請你幫我理解發生了什麼,以及如何實現這個功能?

回答

0

rangechange被炒魷魚多次,每次的時間線變化的時間,所以即使在時間軸動畫,試圖把重點放在它使燒製rangechange事件中的特定事件。 有幾個問題的解決方案。

  1. 您可以檢查性質的byUser財產對象,只有觸發焦點,當它是真實的(用戶縮放或滾動時間線),以防止它跳來跳去不正常。只需使用

    timeline.on('rangechange', function(properties) { 
        if (properties.byUser) { 
         timeline.focus(0); 
        } 
    }); 
    
  2. 替換當前的事件偵聽器只需使用rangechanged事件,只得到每個時間表變化觸發一次。如果您打算進行非用戶驅動的範圍更改,則應使用此事件。同樣,變化很簡單,你只需要事件監聽器改變

    timeline.on('rangechanged', function(properties) { 
        timeline.focus(0); 
    }); 
    
相關問題