广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue实现纯前端表格滚动分页加载
  • 211
分享到

vue实现纯前端表格滚动分页加载

2024-04-02 19:04:59 211人浏览 薄情痞子
摘要

本文实例为大家分享了Vue实现表格滚动分页加载的具体代码,供大家参考,具体内容如下 实现效果 实现过程 <div     style="width: 100%; overfl

本文实例为大家分享了Vue实现表格滚动分页加载的具体代码,供大家参考,具体内容如下

实现效果

实现过程

<div
    style="width: 100%; overflow: hidden; position: relative"
    id="container"
    ref="container"
    @mousewheel="handleScroll"
    :style="{ height: pageHeight + 'px' }">
  <!--    表格-->
  <div class="loading-bottom" v-show="visibleLoading">
      <a-spin :spinning="visibleLoading" style="margin-right: 10px"></a-spin>正在加载数据
    </div>
</div>

js

data() {
  return {
    visibleLoading: false,
  }
},
mounted() {
  //ref指向对应div,不建议对window全局监听,会影响子div的滚动
  this.$refs.container.addEventListener('scroll', this.handleScroll);
},
beforeUnmount() {
  this.$refs.container.removeEventListener('scroll', this.handleScroll);
},
methods:{
  //滚轮监听
  handleScroll() {
    let listAllHeight =
      document.documentElement.scrollTop ||
      document.body.scrollTop + document.documentElement.scrollHeight ||
      document.body.scrollHeight;
    let containerHeight = document.querySelector('#container').scrollHeight;
    //46 + 62 + 75是表格距离页面顶部的剩余距离,跟个人布局有关
    let fieldHeight = document.querySelector('#left-field').scrollHeight + 46 + 62 + 75;
    if (
      (fieldHeight >= containerHeight && this.pageHeight !== fieldHeight) ||
      (containerHeight > fieldHeight && this.pageHeight !== containerHeight)
    ) {
      this.visibleLoading = true;
    }

    setTimeout(() => {
      if (listAllHeight === this.pageHeight && this.pageHeight < containerHeight) {
        this.pageHeight = this.pageHeight + 750;
      }
      if (this.pageHeight > containerHeight && containerHeight > fieldHeight) {
        this.pageHeight = containerHeight;
      }
      if (this.pageHeight > fieldHeight && fieldHeight >= containerHeight) {
        this.pageHeight = fieldHeight;
      }
      this.visibleLoading = false;
    }, 500);
  },
}

CSS

.loading-bottom {
  position: absolute;
  left: 255px;
  bottom: 0;
  height: 30px;
  padding: 5px 0;
  background-color: #d3Dae6;
  width: calc(100% - 270px);
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  border-radius: 2px;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: vue实现纯前端表格滚动分页加载

本文链接: https://www.lsjlt.com/news/145578.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue实现纯前端表格滚动分页加载
    本文实例为大家分享了vue实现表格滚动分页加载的具体代码,供大家参考,具体内容如下 实现效果 实现过程 <div     style="width: 100%; overfl...
    99+
    2022-11-13
  • vue如何实现纯前端表格滚动分页加载
    今天小编给大家分享一下vue如何实现纯前端表格滚动分页加载的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实现效果实现过程&l...
    99+
    2023-06-29
  • vue实现滚动加载的表格
    目录实现效果滚动加载知识储备 组件封装 1. 组件命名 2. 提供的props 3.使用举例 组件封装总结 1.尽可能地使用computed计算属性 2.给表格提供插槽 另一种滚动加...
    99+
    2022-11-12
  • vue前端页面数据加载添加loading效果的实现
    目录前端页面数据加载添加loading效果具体实现全局loading配置1 再src/componennts/Spinner下面建立一个index.vue2 再utils下面tool...
    99+
    2022-11-13
  • 微信小程序实现瀑布流分页滚动加载
    本文实例为大家分享了微信小程序实现瀑布流分页滚动加载的具体代码,供大家参考,具体内容如下 两种分页方式 普通的分页效果会在页面底部提供点击下一页和上一页的按钮,在点击了按钮之后才会触...
    99+
    2022-11-12
  • vue.js表格分页及ajax异步加载数据怎么实现
    这篇“vue.js表格分页及ajax异步加载数据怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue.js表格分页及...
    99+
    2023-07-04
  • Vue结合Springboot实现用户列表单页面(前后端分离)
    目录用户列表页面开发项目介绍1、前端html页面编写2、springboot框架搭建2.1、项目创建2.2、连接数据库2.3、项目完整依赖3、编写entity层4、查询用户信息4.1...
    99+
    2022-11-12
  • springboot vue测试前端项目管理列表分页功能实现
    目录基于 springboot+vue 的测试平台开发一、前后端调通1. 请求后端接口2. 项目列表页面3. 调整接口返回的时间格式问题二、实现列表数据显示1. 使用element ...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作