美文网首页
实现返回顶部时的滚动效果

实现返回顶部时的滚动效果

作者: 饼饼phoebe | 来源:发表于2021-04-08 23:24 被阅读0次

以下为在 vue 中的实现

export default {
  methods: {
    scrollTo (element, to, duration) {
      if (duration <= 0) return
      var difference = to - element.scrollTop // 滚动条需要移动的总距离
      var perTick = difference / duration * 10 // 每次需要移动的距离

      setTimeout(() => {
        element.scrollTop = element.scrollTop + perTick
        if (element.scrollTop === to) return // 如果完成要求的移动 则停止调用
        this.scrollTo(element, to, duration - 10) // 递归调用 直到完成规定的移动
      }, 10)
    },
     // 点击返回顶部按钮时触发事件
    hToTop () {
      // 第三个参数设置为 window.pageYOffset / 10 是为了保持滚动速度一致
      this.scrollTo(document.documentElement, 0, window.pageYOffset / 10)
    }
  }
}

相关文章

网友评论

      本文标题:实现返回顶部时的滚动效果

      本文链接:https://www.haomeiwen.com/subject/uiqbkltx.html