функция автопрокрутки временной шкалы vis.js - PullRequest
0 голосов
/ 05 июля 2018

Я попал в небольшую проблему, я не могу шов, чтобы обернуть голову, и я надеюсь, что некоторые гиды от вас, ребята.

У меня есть временная шкала с кучей групп и подгрупп, и высота временной шкалы теперь больше, чем высота отображающего ее монитора.

И это прекрасно, его можно прокручивать с помощью колеса прокрутки мыши, однако, так как это просто временная шкала на настенном экране, было бы здорово, если бы я мог сделать функцию автопрокрутки, которая прокручивает временную шкалу. вверх и вниз в заданный период времени.

К сожалению, я не могу понять, где это реализовать, чтобы это работало.

У меня есть следующий код для создания прокрутки div (и я пробовал разные способы сделать это в коде vis.js, но пока не повезло)

если кто-нибудь знает способ заставить его прокручиваться вверх и вниз в заданный период времени, я был бы очень признателен за помощь.

<script language="javascript">
ScrollRate = 1;

function scrollDiv_init() {
    //this can be a class also. 
    DivElmnt = document.getElementById('MyDivName');
    ReachedMaxScroll = false;

    DivElmnt.scrollTop = 0;
    PreviousScrollTop  = 0;

    ScrollInterval = setInterval('scrollDiv()', ScrollRate);
}

function scrollDiv() {

    if (!ReachedMaxScroll) {
        DivElmnt.scrollTop = PreviousScrollTop;
        PreviousScrollTop++;

        ReachedMaxScroll = DivElmnt.scrollTop >= (DivElmnt.scrollHeight - DivElmnt.offsetHeight);
    }
    else {
        ReachedMaxScroll = (DivElmnt.scrollTop == 0) ? false : true;

        DivElmnt.scrollTop = PreviousScrollTop;
        PreviousScrollTop--;
    }
}

function pauseDiv() {
    clearInterval(ScrollInterval);
}

function resumeDiv() {
    PreviousScrollTop = DivElmnt.scrollTop;
    ScrollInterval    = setInterval('scrollDiv()', ScrollRate);
}
</script>

1 Ответ

0 голосов
/ 08 августа 2018

Что ж, единственная сложность, которую я вижу при прокрутке временной шкалы на http://visjs.org/examples/timeline/other/verticalScroll.html, заключается в том, что вам нужно прокрутить определенный элемент , а не контейнер временной шкалы. Если вы используете Инспектор для поиска элемента с полосой прокрутки, вы, вероятно, будете удивлены, увидев это:

enter image description here

Действительно, если я применю прокрутку к этому элементу

 var scrollerElement = document.querySelector('#mytimeline1 div.vis-panel.vis-left.vis-vertical-scroll');
 scrollerElement.scrollTop = 100;

шкала времени прокручивается вертикально. Кстати, класс vis-vertical-scroll говорит о том, что мы на правильном пути. На самом деле, вы, вероятно, должны использовать вместо этого более короткий селектор:

 var scrollerElement = document.querySelector('#mytimeline1 .vis-vertical-scroll');

Вы можете попробовать это через консоль браузера на этой странице. Я думаю, этого должно быть достаточно для реализации желаемой автопрокрутки.

...