滚动分页实现

Unity3D实现列表拖拽轮播分页滚动功能 在使用UGUI的ScrollRect做列表滚动时,会有分页滚动的需求,基于ScrollRect写了一个,只需要一个ScrollRect组件即可 效果截图: Threshold为滚动阈值,当翻页的长度达到总长度的0.2时即会翻页,speed为松开鼠标后的缓动速度 以下为代码: using UnityEngine; using UnityEngine.UI; usi... 阅读详情

实现的滚动分页都是懒加载的形式

框架:Vue3+Vite

接口:axios

组件:arco design 的a-scrollar 滚动条组件

<a-scrollbar
          ref="scrollRef"
          style="overflow: auto; height: 100%"
          @scroll="onScroll"
        >
          <transportDetail
            v-for="(item, index) in cardList"
            :key="index"
            :data="item"
            class="mb20 detail"
            @click="handleClick(item)"
          >
          </transportDetail>
          <div v-if="isLoading" class="gray-title-bg">加载中...</div>
       </a-scrollbar>

1、纯前端的滚动分页

实现逻辑:从后端获取完整数据后,分页的在前端页面进行渲染,滚动的方式进行翻页

  /**
   *
   * @param isSending
   * @returns
   */
  const loadingSendList = async (isSending: boolean) => {
    const params = {
      code: searchSendBatchCode.value,
      isSending,
    }
    const infoRes = await selectData(params)
    allData.value = infoRes?.data?.list|| 0
  }

  /**
   * 加载数据
   * 根据搜索条件查询数据
   */
  const loadSearchData = async () => {
    const keyword = searchCode.value?.trim()
    const isNumeric = /^\d+$/.test(keyword) && keyword.length < 5
    if (isNumeric) {
      searchError.value = true
      createWarningMessage('请输入一个五位以上的编号')
      return
    }
    loadingSendList(false)
  }  

// 初始化的时候加载第一页
  const initData = () => {
    if (allData.value.length < pageSize.value) {
      sendBoxInfoList.value = allData.value
      return
    }
    sendBoxInfoList.value = allData.value.slice(0, pageSize.value)
    pageIndex.value = 1
  }

  /**
   * 滚动分页
   */
  const loadMore = () => {
    if (allData.value.length < pageSize.value) {
      sendBoxInfoList.value = allData.value
      return
    }
    const nextIndex = pageIndex.value * pageSize.value
    const nextData = allData.value.slice(nextIndex, nextIndex + pageSize.value)
    if (nextData.length > 0) {
      cardList.value.push(...nextData)
      pageIndex.value += 1
    }
  }

  const onScroll = (e: any) => {
    const el = e.target
    if (el.scrollTop + el.clientHeight >= el.scrollHeight - 20) {
      // 已接近底部,加载更多
      loadMore()
    }
  }

2、后端实现分页

const loadingSendList = async () => {
    if (isLoading.value || allLoaded.value) return
    isLoading.value = true
    const params = {
      code: searchCode.value?.trim(),
      isSending: isSending.value,
    }

    await selectData(
      params,
      pageIndex.value,
      pageSize.value
    )
      .then((infoRes: any) => {
        const list = infoRes?.data?.list || []
        // 累加数据
        if (pageIndex.value === 1) {
          cardList.value = cloneDeep(list)
        } else {
          cardList.value.push(...list)
        }
        // 判断是否已经全部加载完成
        const loadedCount = cardList.value.length
        if (loadedCount >= parseInt(infoRes?.data?.total, 10)) {
          allLoaded.value = true
        } else {
          pageIndex.value += 1
        }
      })
      .finally(() => {
        isLoading.value = false
      })
  }

  /**
   * 滚动到底部加载更多
   */
  const onScroll = (e: any) => {
    const el = e.target
    if (el.scrollTop + el.clientHeight >= el.scrollHeight - 20) {
      loadingSendList()
    }
  }

vxe-table 实现无限加载数据,虚拟滚动+无限滚动分页加载 阅读详情

相关推荐

(04730)半导体器件之基本放大器工作原理(一)

放大器是构成各种电子线路的基本单元电路。所谓“放大”,就是将输入的微弱信号(微弱变化的电压或电流等)去控制直流电源提供的能量,并使输出按照输入的小信号变化规律而变化的过程。所以放大器的本质是能量转换器。本节重点学习基本放大电路的工作原理和基本分析方法及主要性能指标。

黄先生的博客 3006

实现滚动分页查询:提升应用的流畅体验

通过上述步骤,我们实现了一个基于时间戳和偏移量的滚动分页查询功能。这种实现方式能够很好地应对大量数据的分页加载需求,同时提升了用户的使用体验。未来,你可以根据具体业务场景对其进行扩展和优化,例如:增加数据缓存、优化 Redis 存储策略等。

Takumilove的博客 1643

高光谱知识(1)-高光谱成像技术的理解

系列文章目录 高光谱技术可以获得待观测目标或场景的连续单色光谱图像,并通过空间维(x, y)数据和光谱维(λ)数据共同组成三维观测数据立方体,从而为研究人员提供探测目标或场景中的每一个点的空间和光谱特征细节。这种兼具相机的高分辨成像能力和光谱仪的高光谱分辨能力使得高光谱被广泛应用于测绘遥感、目标识别、环境监测与评估、临床影像诊断、过程监控等任务中,并在地理、空间、海洋、气候、大气、农业、植被、生态、医药、安防、制造与色度等多个领域中发挥巨大作用。 文章目录系列文章目录前言一、按获取数据的过程划分二、按照光

Echo_Code的博客 1万+

Vite+vue3+ts +Element-puls (vant)进阶 第六章 分页查询

【代码】Vite+vue3+ts +Element-puls (vant)进阶 第六章 分页查询。

qq_25853769的博客 541

kettle多表数据迁移

点击 文件——新建——作业,在左侧的 核心对象 标签下选择 通用,双击添加一个 start ,一个 转换 ,一个 作业 和一个 成功 到右侧的作业面板,这些作业项都可以改名字。点击文件—新建—转换,在左侧的 核心对象 标签下选择 输入 下的 表输入,双击添加到右侧的转换面板,再选择 作业 下的 复制记录到结果 ,双击添加到右侧的转换面板。新建转换,在左侧的 核心对象 标签下选择 作业 下的 从结果获取记录,双击添加到右侧的转换面板,再选择 作业 下的 设置变量 ,双击添加到右侧的转换面板。

u014061745的博客 1342

从模态到颤振:深入解读Nastran的V-g/V-f图,判断你的机翼设计是否安全

本文深入解析Nastran中的V-g/V-f图在机翼颤振分析中的应用,帮助工程师准确判断设计安全性。通过模态分析到颤振边界的完整判读逻辑,结合气动弹性特性,指导优化机翼结构设计,确保飞行安全。

weixin_28732953的博客 472

iOS UIScrollView中实现分页滚动--定时自动滚动分页

UIScrollView的属性总结 属性 作用 CGPoint contentOffSet 监控目前滚动的位置 CGSize contentSize 滚动范围的大小 UIEdgeInsets contentInset 视图在scrollView中的位置 id delegate

PengKiaChia 5148

用AutoLayout实现分页滚动

滚动视图分页 UIScrollView的pagingEnabled属性用于控制是否按分页进行滚动。在一些应用中会应用到这一个特性,最典型的就是手机桌面的应用图标列表。这些界面中往往每一页功能都比较独立,系统也提供了UIPageViewController来实现这种分页滚动的功能。 实现分页滚动的UI实现一般是最外层一个UIScrollView。然后UIScrollView里面是一个总体的容器视图c...

weixin_33735077的博客 155

JAVA:Spring Boot 集成 Baidu UID-Generator ID 生成器

百度UID-Generator是一款高性能分布式ID生成器,支持600万QPS,提供Snowflake扩展版和Cache模式两种实现方式。文章详细介绍了如何在Spring Boot项目中集成该组件,包括Maven依赖配置、MySQL表结构初始化、Spring Boot数据源配置、WorkerId分配策略实现以及UID生成器的核心配置。该方案具有无中心依赖、ID单调递增、支持集群部署等特点,适用于订单号、用户ID等分布式场景。通过缓存模式(Cache-Buffer)可进一步提升性能,满足高并发业务需求。

木头 487

简谈基于FPGA的千兆以太网设计

简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货。 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学习起来非常不容易。其实,我可以告诉大家,前期学习的基础打扎实了,后期的学习也没那么难。总之就是说难没那么难,说容易也不是那么容易。那么,言归正传,下面让我们一起来聊一聊以太网的学习。 说起以太网,大家可能就会想到百兆以太网、千兆以太网以及万兆以太网等等。局域以太网从10M开始发展,经历几多的变迁,发展到现

3620

滚动CollectionView控制PageControl实现分页浏览的效果

滚动CollectionView控制PageControl实现分页浏览的效果 原文章地址:http://blog.youkuaiyun.com/a_ss_a/article/details/47785013 UIPageControlUICollectionViewIOSUICollectionView分页效果滚动CollectionView控制Pa #pragm

kwylei的博客 5091

电子电气架构 --- 整车电源管理

保证启动能力:防止因电池电量耗尽而导致的车辆无法启动,这对于确保车辆在任何时候都能可靠运行至关重要。 延长电池寿命:通过避免电池深度放电,有助于延长其使用寿命,减少更换电池的需求和成本。 提升用户体验:虽然负载被关闭可能会暂时影响舒适度,但通过在必要时自动采取行动,可以减少驾驶员的焦虑和不确定性,提高整体的用户满意度。

Soly_kun的博客 1084

html把分页改成滚动条,基于JavaScript实现表格滚动分页

本文实例为大家分享了js实现表格滚动分页展示的具体代码,供大家参考,具体内容如下DocumentMonthsMoneyJanuary$100January$100January$100January$100January$100January$100January$100January$100January$100January$100CSS:.scroll-body{display: inlin...

weixin_33682804的博客 481

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

实现页面滚动加载分页数据的方法

我们在web页面开发或H5开发中常见滚动加载分页的功能,下面写出一个实现范例和技巧。 使用VUE框架来实现。关于vue,可以参考https://mp.youkuaiyun.com/editor/html/104135161 var vm = { data() { return { onFetching:false,page:1 }; }, mounted() { let sw = true;//滚动控制开关 docume...

yan_dk的专栏 3680

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

基于redis实现滚动分页功能

执行分页查询第一次查询查询到的的是id为13,12,11,10,9这几条数据,如果当前时间其他用户向集合中添加数据那么新数据会在最顶部新增一条id为14score为当前时间戳的数据,那么这条数据会被放到最上方第二次查询到的数据则会变成9,8,7三条9这条数据则重复查询到,在一些特定场景下这种情况是不允许发生的,为此我们需要实现滚动分页这种动态查询。此时集合中有7条数据执行分页查询第一次查询查询到的的是id为13,12,11,10,9这几条数据。第二次查询为8,7两条,这是正常情况下分页查询到的数据。

weixin_64161454的博客 1289

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

利用WebView在ipad下实现滚动分页效果

WebView里面的网页,滚动的时候默认是平滑滚动的,如果需要让它实现分页的滚动效果,那么如何做?默认UIWebView是没有API提供的,但是在sdk3.2下,它的第一个子View是UIScrollView(注意对于3.2之下的版本是UIScroller一个私有未公开的,这个暂

无限互联@彪哥 1721

jquery滚动分页插件实现

前言 滚动刷新的插件百度能百度出很多,虽然都能实现自己的功能,但是却不是自己最理想的,它们要不就是功能太臃肿,要不就是配置太复杂。这里我分享一个自己写的一个。 注意: 代码中使用到jquery,如果你不想过度依赖jquery,可以将$换成javascript的原生写法。如果你是用在vue中,可以使用如`vue-infinite-scroll`。 代码 var lsScroll = (para...

九丶弟 890

AjAX+Jquery实现滚动条下拉分页

两者都是在某一个元素的内部添加内容。 区别在于:append是在原有基础上增加,html中是替换当前所有内容 <script> <!-- 实现滚动条滚动start --> var pageNum = 1; // 当前页码 var pageSize =10; // 当前每页条数 var pageCount=0;//总页数 var winH = $('#div1').height();//页面可视区域高度 var p=0, t=0; // 顶部和底部的

lyylxx的博客 1720

el-table 实现滚动条分页懒加载

1、滚动条懒加载实现分页数据获取 首先在文件夹directive下的directive.js文件夹中定义全局指令 如下: 'use strict'; /** * * * 添加所有的全局指令 * * */ import Vue from 'vue' // 聚焦指令 // 注册一个全局自定义指令 `v-focus` // v-focus Vue.directive('f...

zyqgt960812的博客 7289

redis实现Feed流滚动分页

redis实现feed流滚动分页

Xuni的博客 1469

PC端实现滚动分页懒加载

PC端实现滚动分页懒加载

神膘护体小月半的博客 1217

React Native鸿蒙:ScrollView横向滚动分页实现

ScrollView作为React Native核心滚动容器组件,在移动应用开发中承担着关键角色。它是基于平台原生滚动视图的React封装,提供了一致的跨平台滚动体验。ScrollView本质上是一个可滚动的容器视图,支持垂直和水平两种滚动方向,能够包含任意数量和类型的子组件。本文全面探讨了React Native在OpenHarmony 6.0.0平台上实现横向滚动分页的完整技术方案。

摘星编程的博客 709

Vue实现滚动加载的方法 - 分页器 / 无线滚动

目的:下滑到底部,懒加载出下一页内容; 数据源: 如果已经获取到了全部数据,就需要新增一个显示数据,初次加载一部分,滚动后将截取的下一部分 push 到显示数据中 如果需要分页获取数据,则新增一个显示数据,将滚动后的下一页数据,push 至显示数据内 实现方法: 分页器:基于 elementUI , 点击上一页 / 下一页的时候, 请求 page 变化, 获取不同分页的数据 无线滚动:基于 elementUI Plus , 滚动到底部时 触发 无线滚动 v-infinite-scroll , 触发 .

yuan 2828

利用UGUI实现分页滚动效果

在游戏中,无论是显示活动或者是任务,分页滚动显示都是一个常见的功能.使用UGUI的Scroll view来实现一个这样的功能是在unity中比较常见的实现方式. Scroll view的设置 在Scroll view的content中添加如下俩个组件,可以通过调节grid layout group组件中的cell size来调节没一个分页里的元素的大小. 如果只需要水平分页移动,可以将Scroll View组件的vertic垂直选项关闭 在content下添加image作为每一个页面,这样就可以通过手动

jjegoing的博客 2900
下一篇: 前端实现记住密码
BugCollect
博客等级 码龄1年 104粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值