vue 实现返回顶部--带动画效果

240 阅读1分钟

vue 实现返回顶部--带动画效果

效果: demo.gif

HTML部分:

<div class="up" @click="handleUp"></div>

CSS部分:

/* 编译器使用的是 stylus */
.up
  position: fixed
  bottom: 60px
  right: 30px
  width: 50px
  height: 50px
  border-radius: 7px
  /* 这里引用了 iconfoot 的返回顶部图片 */
  background: url('@/assets/images/返回顶部 .svg') no-repeat center center
  background-color: #fff
  cursor: pointer

JS部分:

handleUp() {
       const timer = setInterval(() => {
        // 文档滚动的距离
        const top = document.documentElement.scrollTop
        // 设置步长,便于实现动画滚动
        const speed = Math.ceil(top / 10)
        if (document.documentElement.scrollTop > 0) {
          document.documentElement.scrollTop -= speed
        } else {
          // 当返回顶部时,清除定时器
          clearInterval(upRoll)
        }
      }, 20)
    }