vue 实现返回顶部功能-指定盒子滚动区域

vue 实现返回顶部功能-指定盒子滚动区域

html代码

javascript 复制代码
  <a-icon
      type="vertical-align-top"
      class="top"
      name="back-top"
      @click="backTop"
      v-if="btnFlag"
    />

css代码

css 复制代码
.top {
  height: 35px;
  width: 37px;
  position: fixed;
  right: 5%;
  bottom: 5%;
  text-align: center;
  line-height: 45px;
  font-size: 20px;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0px 1px 3px 1px #888888;
  z-index: 999;
}

返回顶部

javascript 复制代码
    backTop() {
      const timer = setInterval(() => {
        let scrollTop = document.getElementsByClassName("wk-layout_body")[0].scrollTop;
        let ispeed = Math.floor(-scrollTop / 5);
        document.getElementsByClassName("wk-layout_body")[0].scrollTop = scrollTop + ispeed;
        if (scrollTop === 0) {
          clearInterval(timer);
        }
      });
    },

显示/隐藏返回标志

javascript 复制代码
data() {
    return {
   btnFlag: false,
   }
 },
   
 mounted() {
    window.addEventListener("scroll", this.scrollToTop, true);
  },
  destroyed() {
    window.removeEventListener("scroll", this.scrollToTop);
  },
  scrollToTop() {
      let elVal = document.getElementsByClassName("wk-layout_body")[0];
      let windowHeight = elVal.offsetHeight / 2;
      const that = this;
      that.scrollTop = elVal.scrollTop;
      if (that.scrollTop > windowHeight) {
        that.btnFlag = true;
      } else {
        that.btnFlag = false;
      }
    },
相关推荐
yinke小琪7 分钟前
JavaScript DOM节点操作(增删改)常用方法
前端·javascript
枣把儿11 分钟前
Vercel 收购 NuxtLabs!Nuxt UI Pro 即将免费!
前端·vue.js·nuxt.js
爱编程的喵14 分钟前
从XMLHttpRequest到Fetch:前端异步请求的演进之路
前端·javascript
豆苗学前端20 分钟前
手把手实现支持百万级数据量、高可用和可扩展性的穿梭框组件
前端·javascript·面试
yinke小琪22 分钟前
JavaScript 事件冒泡与事件捕获
前端·javascript
gzzeason34 分钟前
Ajax:现代JS发起http通信的代名词
前端·javascript·ajax
iphone10841 分钟前
一次编码,多端运行:HTML5多终端调用
前端·javascript·html·html5
paopaokaka_luck1 小时前
智能推荐社交分享小程序(websocket即时通讯、协同过滤算法、时间衰减因子模型、热度得分算法)
数据库·vue.js·spring boot·后端·websocket·小程序
iccb10131 小时前
我是如何实现在线客服系统的极致稳定性与安全性的
前端·javascript·后端
一大树1 小时前
Vue3祖孙组件通信方法总结
前端·vue.js