当前位置: 首页 > 知识库问答 >
问题:

前端 - 如何在vue中实现一个定时自动间隔多少秒滚动的滚动条?

桓宜
2023-07-16

如何在vue中实现一个定时自动间隔多少秒滚动的滚动条?

mounted () {    this.getTableScroll()  },  destroyed () {    this.getTableScroll()  },  methods: {    getTableScroll () {      if (!this.intervalID) {        this.intervalID = setInterval(this.autoScroll, 2000)      }    },    autoScroll () {      const dom = this.$refs.scrollTable      dom.scrollTop = dom.scrollHeight    }

这么写能一下子滚动,不能间隔滚动,怎么优化实现呢??

参考楼里大佬答案,但是不实现已打开页面就自动间隔滚动,反而是要手动滚动并一下子回到顶部,这是哪里有问题(350是容器的固定高度)

data () {    return {      activeCls: 'red',      labelCls: 'label',      valueCls: 'value',      // 定时器标识符      intervalID: null,      scrollStep: 30,      currentScrollTop: 0      // table_col: 'table_col'    }  },  mounted () {    this.getTableScroll()  },  destroyed () {    this.clearScrollInterval()  },  methods: {    getTableScroll () {      if (!this.intervalID) {        this.intervalID = setInterval(this.autoScroll, 2000)      }    },    clearScrollInterval () {      if (this.intervalID) {        clearInterval(this.intervalID)        this.intervalID = null      }    },    autoScroll () {      const dom = this.$refs.scrollTable      this.currentScrollTop += this.scrollStep      if (this.currentScrollTop >= dom.scrollHeight - 350) {        this.currentScrollTop = dom.scrollHeight - 350      }      dom.scrollTop = dom.currentScrollTop    }  }

共有1个答案

牟嘉
2023-07-16
data () {  return {    activeCls: 'red',    labelCls: 'label',    valueCls: 'value',    // 定时器标识符    intervalID: null,    scrollStep: 30,    currentScrollTop: 0    // table_col: 'table_col'  }},mounted () {  this.getTableScroll()},beforeDestroy () {  this.clearScrollInterval()},methods: {  getTableScroll () {    if (!this.intervalID) {      this.intervalID = setInterval(this.autoScroll, 2000)    }  },  clearScrollInterval () {    if (this.intervalID) {      clearInterval(this.intervalID)      this.intervalID = null    }  },  autoScroll () {    const dom = this.$refs.scrollTable    this.currentScrollTop += this.scrollStep    if (this.currentScrollTop >= dom.scrollHeight - 350) {      this.currentScrollTop = 0 // 重置为0,重新开始滚动    }    dom.scrollTop = this.currentScrollTop  }}
 类似资料:
  • 本文向大家介绍js实现滚动条滚动到某个位置便自动定位某个tr,包括了js实现滚动条滚动到某个位置便自动定位某个tr的使用技巧和注意事项,需要的朋友参考一下 要实现带滚动条的table,定位到某个tr,其实是很简单的,只有几行js代码就可以完成,具体内容如下 js代码 html 效果图: 虽说是几行代码,但要彻底弄懂。要熟悉animate的使用,scrollTop,.offsetTop的意思方可得心

  • 我正在尝试在Android中实现一个自定义线性布局管理器。用于获得水平自动滑动的RecolyerView。但是当我试图将自定义类调用到主java类中时,我会遇到一些问题。 下面列出了我的代码所面临的问题。 请告诉上述错误的解决方法。另外,请精确的代码,以实现水平自动滑动回收视图。使用我已经提到的自定义线性布局管理器。

  • 本文向大家介绍vue监听滚动事件实现滚动监听,包括了vue监听滚动事件实现滚动监听的使用技巧和注意事项,需要的朋友参考一下 在vue中实现滚动监听和原生js无太大差异,下面是一个简单的demo,可在控制台查看结果 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 本文向大家介绍Android简单实现无限滚动自动滚动的ViewPager,包括了Android简单实现无限滚动自动滚动的ViewPager的使用技巧和注意事项,需要的朋友参考一下 经常我们会在应用中看到一个可以自动滚动,并且无限滚动的一个ViewPager,百度谷歌上面也有很多关于这方面的教程,但是感觉都略显麻烦,而且封装的都不是很彻底。所以试着封装一个比较好用的ViewPager 效果如下: 简

  • 我有一个问题与自动滚动在滚动视图。 在我的例子中,有两个Recyclerview。第一个循环视图,水平滚动,第二个垂直滚动。第一个循环视图仅用于拖动,第二个循环视图只用于拖放。两个循环视图都在ScrollView中,所以我在第二个循环视图中禁用了垂直滚动。我在第二个Recyclerview的项目中添加了DragListener。每个项目都有一个拖动侦听器,因此我在拖放项目时添加/替换项目。 所以我

  • 本文向大家介绍JS JQUERY实现滚动条自动滚到底的方法,包括了JS JQUERY实现滚动条自动滚到底的方法的使用技巧和注意事项,需要的朋友参考一下 设置页面加载时滚动条自动滚到底的方法: jQuery: JavaScript: 以上2种方法均可以实现页面加载时滚动条自动滚动到底,小伙伴们根据自己的实际需求,自由选择吧