显示回顶按钮并返回顶部

Posted lishyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显示回顶按钮并返回顶部相关的知识,希望对你有一定的参考价值。

<template>
  <div>
    <p @click="backtop" v-show="isShow">回到顶部</p>
  </div>
</template>

  <script>
export default {
  data() {
    return {
      isShow: false
    }
  },
  mounted() {
    window.addEventListener("scroll", this.showbtn, true);
  },
  methods: {
    // 显示回到顶部按钮
    showbtn() {
      let that = this;
      let scrollTop =
        window.pageYOffset ||
        document.documentElement.scrollTop ||
        document.body.scrollTop;
      that.scrollTop = scrollTop;
      if(that.scrollTop >= 400) {
        this.isShow = true
      }else {
        this.isShow = false
      }
    },
    /**
     * 回到顶部功能实现过程:
     * 1. 获取页面当前距离顶部的滚动距离(虽然IE不常用了,但还是需要考虑一下兼容性的)
     * 2. 计算出每次向上移动的距离,用负的滚动距离除以5,因为滚动的距离是一个正数,想向上移动就是做一个减法
     * 3. 用当前距离加上计算出的距离,然后赋值给当前距离,就可以达到向上移动的效果
     * 4. 最后记得在移动到顶部时,清除定时器
     */
    backtop() {
      var timer = setInterval(function() {
        let osTop =
          document.documentElement.scrollTop || document.body.scrollTop;
        let ispeed = Math.floor(-osTop / 5);
        document.documentElement.scrollTop = document.body.scrollTop =
          osTop + ispeed;
        this.isTop = true;
        if (osTop === 0) {
          clearInterval(timer);
        }
      }, 30);
    }
  }
};
</script>

<style scoped>
p {
  position: fixed;
  top: 500px;
  right: 0;
  width: 20px;
  padding: 5px;
  color: red;
  background-color: #eee;
}
</style>

 

以上是关于显示回顶按钮并返回顶部的主要内容,如果未能解决你的问题,请参考以下文章

如何在地图片段 API v2 布局顶部添加按钮

Vue3返回顶部组件及返回顶部js封装

带有片段的 Android Up 按钮未显示完整片段

当按下返回按钮时,listview 会顶部。如何解决?

以编程方式将按钮添加到片段

当我尝试在片段中显示或隐藏浮动操作按钮时出错