Vue中实现返回顶部

html样式

	//van-icon 是引用了vant组件中的icon图标
   <div class="top" v-show="flag_scroll" @click="backTop">
      <van-icon name="arrow-up" size="25" color="#333" />
      <p>顶部</p>
    </div>

data

 data() {
    return {
    	flag_scroll: false,
        scroll: 0,
    }
  },

methods

methods: {
	 //返回顶部

    backTop() {
      document.documentElement.scrollTop = 0;
    },

    //滑动超过200时显示按钮
    handleScroll() {
      let scrollTop = document.documentElement.scrollTop;
      //console.log(document.documentElement.scrollTop);
      if (scrollTop > 200) {
        this.flag_scroll = true;
      } else {
        this.flag_scroll = false;
      }
    },
},

mounted

 mounted() {
    window.addEventListener("scroll", this.handleScroll);
  },
### 功能实现方案 在 Vue 3 应用中实现返回页面顶部”功能,可以通过以下方式完成: #### 1. 使用 `window.scrollTo()` 方法 最基础的方式是使用 `window.scrollTo(x, y)` 方法,将页面滚动到指定位置。若需要平滑滚动,可以在 CSS 中设置 `scroll-behavior: smooth`。 ```vue <template> <button class="toTop" @click="toTop" :style="dynamicStyles">↑</button> </template> <script> export default { data() { return { dynamicStyles: { opacity: 0, }, }; }, mounted() { window.addEventListener("scroll", this.handleWindowScroll); }, beforeUnmount() { window.removeEventListener("scroll", this.handleWindowScroll); }, methods: { handleWindowScroll() { if (window.scrollY > document.documentElement.clientHeight / 2) { this.dynamicStyles.opacity = 1; } else { this.dynamicStyles.opacity = 0; } }, toTop() { window.scrollTo(0, 0); }, }, }; </script> <style> html { scroll-behavior: smooth; } .toTop { transition: 0.3s ease; position: fixed; bottom: 80px; right: 100px; display: block; background: #ffffff; width: 50px; height: 50px; text-align: center; line-height: 50px; border-radius: 100%; cursor: pointer; } </style> ``` #### 2. 使用自定义组件 `vue3-goto-top-or-bottom` 该组件由作者 `Samdy_Chan` 开发,支持自动检测父容器是否滚动并显示图标,同时支持点击按钮实现平滑滚动到顶部或底部。 ```vue <template> <GoTopBtn :top="20"> <p>↑</p> </GoTopBtn> </template> <script> import GoTopBtn from "vue3-goto-top-or-bottom"; export default { components: { GoTopBtn, }, }; </script> ``` #### 3. 动态控制按钮显示与隐藏 通过监听 `window.scrollY` 值来判断是否显示按钮。当用户滚动页面超过一定距离时,按钮逐渐显示;反之则隐藏。 ```javascript handleWindowScroll() { if (window.scrollY > document.documentElement.clientHeight / 2) { this.dynamicStyles.opacity = 1; } else { this.dynamicStyles.opacity = 0; } } ``` #### 4. 添加动画效果 在 CSS 中通过 `transition` 属性为按钮的透明度变化添加动画效果,使按钮显示和隐藏更加平滑。 ```css .toTop { transition: 0.3s ease; } ``` ### 优势与适用场景 - **简单直接**:适合不需要复杂交互的小型项目。 - **可扩展性强**:通过封装组件,可轻松在多个页面中复用。 - **兼容性好**:适用于主流浏览器,且对旧版浏览器也有良好支持。 ### 总结 在 Vue 3 中实现返回顶部”功能,可以使用原生 `window.scrollTo()` 方法结合动态样式控制按钮的显示与隐藏,也可以借助现成的组件如 `vue3-goto-top-or-bottom` 来简化开发流程。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值