〇×〇站

个人博客,佛系更新

vue中实现回到顶部功能

  • Pluto
  • 2023-04-27 16:12:36
  • 25
  • 转自https://blog.csdn.net/qq_36070288/article/details/84765139

    下面直接看代码:(不清楚的看对应注释)

    <!-- 回顶部按钮为一张50*50的图片 -->
    <!-- btnFlag 控制图片显示隐藏 -->
    <!-- backTop 回顶部的方法 -->
    <img v-if="btnFlag" class="go-top" src="图片url" @click="backTop">
    

    vue实例:

    // vue的两个生命钩子,这里不多解释。
    // window对象,所有浏览器都支持window对象。它表示浏览器窗口,监听滚动事件
    mounted () {
      window.addEventListener('scroll', this.scrollToTop)
    },
    destroyed () {
      window.removeEventListener('scroll', this.scrollToTop)
    },
     
     
    methods: {
      // 点击图片回到顶部方法,加计时器是为了过渡顺滑
      backTop () {
          const that = this
          let timer = setInterval(() => {
            let ispeed = Math.floor(-that.scrollTop / 5)
            document.documentElement.scrollTop = document.body.scrollTop = that.scrollTop + ispeed
            if (that.scrollTop === 0) {
              clearInterval(timer)
            }
          }, 16)
      },
     
      // 为了计算距离顶部的高度,当高度大于60显示回顶部图标,小于60则隐藏
      scrollToTop () {
        const that = this
        let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
        that.scrollTop = scrollTop
        if (that.scrollTop > 60) {
          that.btnFlag = true
        } else {
          that.btnFlag = false
        }
      }
    }
    

    具体效果点击这里查看:家盟家政

    分类:
  • 代码
  • 标签:
  • vue