咨询电话:
15628812133
15
2023/09

定时器实现自动滚动

发布时间:2023-09-15 18:39:18
发布者:·
浏览量:
0

    今天做大屏的时候需要做一个滚动的效果,从博客看了一个比较简单的,记录一下,方便查看,其实自动滚动归根结底也是一个定时器,每隔多少时间移动其中的内容多少像素,直播过其中间隔的时间很少,肉眼所视的是一个连续的动作,下面直接看代码。

 

// 拿到表格挂载后的真实DOM
            const table = this.$refs.anomalyTableInfo;
            // 拿到表格中承载数据的div元素
            const divData = table.bodyWrapper;
            // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
            this.dingshitwo = setInterval(() => {
                // 元素自增距离顶部1像素
                divData.scrollTop += 1;
                // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
                if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
                    // 重置table距离顶部距离
                    divData.scrollTop = 0;
                }
            }, 100);  // 滚动速度

  定时器实现自动滚动

定时器实现自动滚动

 

 

  我这里放了两段代码,第一段是针对element表格的,其实就多了一步拿到承载表格数据的div,这两段定时器之前的都是为了获取整个承载容器,而我的第二步能直接拿到容器,所有没有table.bodyWrapper,当我们拿到了整个div之后就可以放定时器了,大家请注意,定时器一定要定义一下,我这里起的名比较low用的,one,two,three大家不要学我.

    ━((*′д`)爻(′д`*))━!!!!

    为什么要定义一下,待会我们再说,现在每100毫秒执行一次,并使元素距离顶部加一,当可视高度+距离顶部的高度和整个高度相等时,意味着我们的数据到了底部,这时候我们重新把距离顶部的高度变成0,

 

定时器实现自动滚动


    现在是大揭秘时间,为什么要定义----------定义它就是为了销毁他。这里的gundong就是最上面的两段开启定时器的代码。

    这里我们可以通过鼠标滑动滑出以及清除定时器来达到暂停的效果,另外,当页面被关掉的时候,一定要清除定时器,这里说过很多次,为了防止内存泄漏和代码的规范性,希望大家不要忘记。

    以上就是简单定时器的实现了。


关键词:
返回列表