Scroll vis.js时间线自动滚动功能

Scroll vis.js时间线自动滚动功能,scroll,vis.js,autoscroll,vis.js-timeline,Scroll,Vis.js,Autoscroll,Vis.js Timeline,我遇到了一个小问题,我想不出头绪,我希望你们能给我一些指导 我有一个时间轴,有一组组和子组,时间轴的高度现在大于显示它的监视器的高度 这很好,它可以使用鼠标上的滚轮滚动,但是,因为它只是挂在墙上的屏幕上的时间轴,如果我可以使用自动滚动功能,在给定的时间范围内上下滚动时间轴,那就太酷了 不幸的是,我不知道在哪里实现它才能让它工作 我有下面的代码来制作一个div滚动条(并尝试了不同的方法在vis.js代码中实现它,但到目前为止没有成功) 如果有人知道如何在给定的时间范围内使其上下滚动,我将非常感谢您

我遇到了一个小问题,我想不出头绪,我希望你们能给我一些指导

我有一个时间轴,有一组组和子组,时间轴的高度现在大于显示它的监视器的高度

这很好,它可以使用鼠标上的滚轮滚动,但是,因为它只是挂在墙上的屏幕上的时间轴,如果我可以使用自动滚动功能,在给定的时间范围内上下滚动时间轴,那就太酷了

不幸的是,我不知道在哪里实现它才能让它工作

我有下面的代码来制作一个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;
函数scrollDiv_init(){
//这也可以是一个类。
DivElmnt=document.getElementById('MyDivName');
ReachedMaxScroll=false;
DivElmnt.scrollTop=0;
PreviousScrollTop=0;
ScrollInterval=setInterval('scrollDiv()',ScrollRate);
}
函数scrollDiv(){
如果(!ReachedMaxScroll){
DivElmnt.scrollTop=上一个scrollTop;
PreviousScrollTop++;
达到MaxScroll=DivElmnt.scrollTop>=(DivElmnt.scrollHeight-DivElmnt.offsetHeight);
}
否则{
ReachedMaxScroll=(DivElmnt.scrollTop==0)?false:true;
DivElmnt.scrollTop=上一个scrollTop;
上一个滚动顶--;
}
}
函数pauseDiv(){
清除间隔(滚动间隔);
}
函数resumeDiv(){
PreviousScrollTop=DivElmnt.scrollTop;
ScrollInterval=setInterval('scrollDiv()',ScrollRate);
}

嗯,我能看到的关于滚动时间线的唯一棘手部分是,你必须滚动某些元素,而不是时间线的容器。如果使用inspector通过滚动条查找元素,您可能会惊讶地发现:

事实上,如果我将滚动应用于该元素

 var scrollerElement = document.querySelector('#mytimeline1 div.vis-panel.vis-left.vis-vertical-scroll');
 scrollerElement.scrollTop = 100;
时间线将垂直滚动。顺便说一句,
vis垂直滚动
类表明我们走的是正确的道路。实际上,您可能应该使用较短的选择器:

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

您可以通过该页面上的浏览器控制台尝试此操作。我认为这应该足以让您实现所需的自动滚动。

嗯,关于滚动时间线,我能看到的唯一棘手的部分是,您必须滚动某些元素,而不是时间线的容器。如果使用inspector通过滚动条查找元素,您可能会惊讶地发现:

事实上,如果我将滚动应用于该元素

 var scrollerElement = document.querySelector('#mytimeline1 div.vis-panel.vis-left.vis-vertical-scroll');
 scrollerElement.scrollTop = 100;
时间线将垂直滚动。顺便说一句,
vis垂直滚动
类表明我们走的是正确的道路。实际上,您可能应该使用较短的选择器:

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

您可以通过该页面上的浏览器控制台尝试此操作。我认为这应该足以让您实现所需的自动滚动。

所以基本上您不知道如何以编程方式使vis.js timeline滚动,对吧?是的,我相信是这样。现在,我的显示器的时间线很长,您需要使用鼠标滚动,或者拖动鼠标来显示其余的时间线。对于坐在电脑前使用它的用户来说,这很好,但我的计划是在大屏幕上显示它,因此,如果有一个自动滚动功能,它将显示时间线中的所有项目,而不仅仅是屏幕上适合的少数项目,那将更加有用。啊,我明白了。你能不能创建一个工作代码段/jsFiddle,这样我就可以玩了,或许可以帮上忙?不一定要使用数据,您可以模拟一些数据,使其溢出高度。我无法让JSFIDLE正常工作,它不会加载时间线,我将看看我是否能够找出为什么(我是jsFiddel新手)我有一个指向时间线exsample的链接,其中显示了我的问题。如果你看到底部的时间线(我使用的那个),我需要时间线自动上下滚动,以便偶尔显示所有的卡车。所以基本上你不知道如何让vis.js时间线以编程方式滚动,对吧?是的,我相信是这样。现在,我的显示器的时间线很长,您需要使用鼠标滚动,或者拖动鼠标来显示其余的时间线。对于坐在电脑前使用它的用户来说,这很好,但我的计划是在大屏幕上显示它,因此,如果有一个自动滚动功能,它将显示时间线中的所有项目,而不仅仅是屏幕上适合的少数项目,那将更加有用。啊,我明白了。你能不能创建一个工作代码段/jsFiddle,这样我就可以玩了,或许可以帮上忙?不一定要使用数据,您可以模拟一些数据,使其溢出高度。我无法让JSFIDLE正常工作,它不会加载时间线,我将看看我是否能够找出为什么(我是jsFiddel新手)我有一个指向时间线exsample的链接,其中显示了我的问题。如果您看到底部时间线(我使用的时间线),我需要时间线自动向上和向下滚动,以便每隔一段时间显示所有卡车。