vue2 div滚动条下拉到底部时触发事件(懒加载) 超级简易版本的懒加载

在这里插入图片描述

文章目录

  • 导文
  • 文章重点
    • 内容效果展示:
    • 代码展示
    • 这些方法适用于哪些场景
  • 总结


导文

vue2 div滚动条下拉到底部时触发事件(懒加载) 超级简易版本的懒加载

文章重点

内容效果展示:

当div拉到底部的时候:
在这里插入图片描述
编辑器返回:
在这里插入图片描述

代码展示

在Vue 2中,可以通过监听div的scroll事件来判断滚动条是否到达了底部。以下是一个简单的示例:

<template><div class="scroll-container" ="handleScroll"><!-- 内容 --><div v-for="item in items" :key="item">{{ item }}</div><!-- 内容 --></div>
</template><script>export default {data() {return {items: [...Array(100).keys()].map(i => `Item ${i + 1}`), // 示例数据};},methods: {handleScroll(event) {const { scrollTop, clientHeight, scrollHeight } = event.target;if (scrollTop + clientHeight >= scrollHeight) {// 滚动条到达底部,触发懒加载this.loadMore();}},loadMore() {// 这里添加加载更多数据的逻辑console.log('到达底部,触发懒加载');// 例如,可以添加更多数据到items数组中// this.items.push(...newItems);}}
};
</script><style>
.scroll-container {height: 300px; /* 设置一个固定的高度 */overflow-y: auto; /* 开启滚动 */
}
</style>

在这个示例中,.scroll-container 是一个具有固定高度并且内容可滚动的div。我们通过监听scroll事件来获取滚动容器的scrollTop(滚动条的垂直位置)、clientHeight(可视区域的高度)和scrollHeight(整个内容的高度)。当scrollTop + clientHeight的值大于或等于scrollHeight时,说明滚动条已经到达了底部,我们可以在这时候触发loadMore方法来加载更多数据。

这些方法适用于哪些场景

在Vue 2中,通过监听div滚动事件来实现懒加载的方法适用于以下场景:

无限滚动/滚动加载更多:这是最常见的使用场景。当用户滚动到页面底部或某个容器底部时,自动加载更多内容,通常用于新闻流、社交媒体帖子、图片墙等。

聊天应用:在聊天应用中,当用户滚动到聊天历史记录的底部时,可以自动加载更早的消息或新消息。

图片/视频懒加载:对于大量图片或视频的页面,懒加载可以显著提高性能。只有当用户滚动到图片或视频所在的位置时,才开始加载它们。

虚拟滚动:对于处理大量数据的情况,虚拟滚动是一种高效的解决方案。它仅渲染视口内的数据项,并在用户滚动时动态更新。当用户滚动到底部时,可以触发事件来加载新数据或更新渲染。

分页替代方案:在某些情况下,你可能不想使用传统的分页方式,而希望在用户滚动到底部时加载下一页内容。

动态内容生成:根据用户滚动位置动态生成内容,比如地图上的标记点、动态图表等。

广告加载:在广告展示中,当用户滚动到页面底部时,可以触发广告内容的加载。

自定义滚动行为:任何需要自定义滚动行为的场景,比如特殊的滚动效果、滚动动画等。

需要注意的是,这种方法对于性能有一定要求,因为滚动事件可能会频繁触发。因此,在实现时应该采取防抖(debounce)或节流(throttle)技术来限制处理函数的执行频率,以提高性能。对于移动设备上的滚动性能,还需要特别关注触摸事件的处理和滚动优化。在Vue中,可以使用第三方库如vue-scroll或vue-infinite-scroll来更方便地实现滚动加载功能。

总结

通过监听div的scroll事件,可以获取滚动容器的相关属性,如滚动条的位置、可视区域的高度以及整个内容的高度。当滚动条到达底部时,可以执行相应的懒加载逻辑,比如加载更多数据。

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

substr函数踩坑

##hive和impala的substr函数比对 ###在hive中substr函数使用 select substr(name,0,5) from bd_test; 结果&#xff1a;12345 select substr(name,1,5) from bd_test; 结果&#xff1a;12345 ###impala中substr函数使用 select substr(name,0,5) from bd_test; 结果&#xff…

JAVA后端开发面试基础知识(十)——设计模式

创建型模式 创建型模式的作用就是创建对象&#xff0c;说到创建一个对象&#xff0c;最熟悉的就是 new 一个对象&#xff0c;然后 set 相关属性。但是&#xff0c;在很多场景下&#xff0c;我们需要给客户端提供更加友好的创建对象的方式&#xff0c;尤其是那种我们定义了类&am…

BJFU|计算机网络缩写对照表

之前有过这个题型&#xff0c;但23年没考&#xff0c;所以按需准备 A ACK (ACKnowledgement) 确认 ADSL (Asymmetric Digital Subscriber Line) 非对称数字用户线 API (Applicatin Programming Interface) 应用编程接口 ARP (Address Resolution Protocol) 地址解析协议 ARQ (…

Git - Protocol

4.1 Git on the Server - The Protocols 至此&#xff0c;你应该可以完成大部分日常工作&#xff0c;而这些工作都需要用到 Git。不过&#xff0c;要在 Git 上进行任何协作&#xff0c;你都需要一个远程 Git 仓库。虽然从技术上讲&#xff0c;你可以推送改动到个人仓库&#xf…

银河麒麟服务器操作系统V10【vnc配置多用户登录】

1.添加多用户&#xff08;规划kingbase使用5901窗口&#xff0c;root使用5903&#xff09;&#xff1b; adduser kingbase 2.配置文件&#xff1b; cp -rp /lib/systemd/system/vncserver.service /etc/systemd/system/vncserver:1.servicecp -rp /lib/systemd/system/vncse…

【黑马程序员】Python初始

初始Python Python应用场景 什么是编程语言 安装Python开发环境 Python官网 选择Download 选择对应的Python版本和所要下载的操作系统 下载后直接下一步下一步即可安装成功 测试安装效果 重命名python命令让其使用Python3 echo alias python"python3" >…

编程笔记 Golang基础 046 mssql数据库连接与操作

编程笔记 Golang基础 046 mssql数据库连接与操作 一、连接与操作二、全局连接三、数据库连接字符串四、应用示例小结 数据库操作是现代软件系统不可或缺的一部分&#xff0c;对软件的功能实现、性能优化、数据安全等方面起着至关重要的作用。Go语言中连接和操作Microsoft SQL S…

知名比特币质押协议项目Babylon确认参加2024年在香港数码港举办的Hack.Summit()2024区块链开发者大会。

知名比特币质押协议项目Babylon确认参加2024年在香港数码港举办的Hack.Summit()2024区块链开发者大会。作为比特币生态的领军项目&#xff0c;Babylon积极参与全球区块链领域的交流与合作&#xff0c;此次出席大会将为其提供一个展示项目进展、交流技术与创新思路的重要平台。B…

2402. 2-SAT 问题(tarjan,2-SAT模板题)

活动 - AcWing 给定 n 个还未赋值的布尔变量 x1∼xn。 现在有 m 个条件&#xff0c;每个条件的形式为 “xi 为 0/1 或 xj 为 0/1 至少有一项成立”&#xff0c;例如 “x1 为 1 或 x3 为 0”、“x8 为 0 或 x4 为 0” 等。 现在&#xff0c;请你对这 n 个布尔变量进行赋值&am…

acwing算法提高之数据结构--树状数组

目录 1 专题介绍2 训练 1 专题介绍 本专题用来汇总使用树状数组算法求解的题目。 应用场景&#xff1a;给你长度为n的数组nums&#xff0c;可以改变第i个数的大小&#xff0c;求数组下标区间[left, right]内的前缀和。要求时间复杂度不超过 O ( l o g N ) O(logN) O(logN)。 …

使用 MySQL 实现 Java 版的 hashCode 函数

前提 MySQL 数据库的编码需要设置为 utf8 或 utf8mb4&#xff0c;因为下面给出的代码是以用 utf8 编码储存数据为前提的。 MySQL Function drop function if exists utf8_unicode; create function utf8_unicode(str varchar(1)) returns bigint begindeclare num_utf8 bigi…

【GB28181】SIP协议实践之Windows下VS2019编译eXosip、osip,测试(附工程源码,一键打开编译)

引言 SIP开源库或者GB28181,这里选择了osip和eXosip,但是这两个库的编译使用有些麻烦,源码下来之后编译会出现很多问题,网上也没有找到完整的编译介绍,只能一步一步的找办法解决,以下帮大家整理编译过程。 如果不想编译,可以跳转文章末尾链接直接下载相应工程直接编译即…

登录校验认证

会话技术 会话&#xff1a;用户打开浏览器&#xff0c;访问web服务器的资源&#xff0c;会话建立&#xff0c;直到有一方断开连接&#xff0c;会话结束。在一次会话中可以包含多次请求和响应。 会话跟踪&#xff1a; 一种维护浏览器状态的方法&#xff0c;服务器需要识别多次请…

Aop注解+Redis解决SpringBoot接口幂等性(源码自取)

目录 一、什么是幂等性&#xff1f; 二、哪些请求天生就是幂等的&#xff1f; 三、为什么需要幂等 1.超时重试 2.异步回调 3.消息队列 四、实现幂等的关键因素 关键因素1 关键因素2 五、引入幂等性后对系统的影响 六、Restful API 接口的幂等性 实战Aop注解redis解…

计算机网络——计算机网络的性能

计算机网络——计算机网络的性能 速率带宽吞吐量时延时延宽带积往返时间RTT利用率信道利用率网络利用率 我们今天来看看计算机网络的性能。 速率 速率这个很简单&#xff0c;就是数据的传送速率&#xff0c;也称为数据率&#xff0c;或者比特率&#xff0c;单位为bit/s&#…

神经网络 梯度与神经元参数w、b关系;梯度与导数关系

参考&#xff1a;https://blog.csdn.net/weixin_44259490/article/details/90295146 视频&#xff1a;https://www.bilibili.com/video/BV1a14y167vh 概念 梯度与w的关系可以用梯度下降公式来表示&#xff1a;ww−α ∂ c o s t ∂ w \frac{\partial cost}{\partial w} ∂w∂…

vs创建asp.net core webapi发布到ISS服务器

打开服务器创建test123文件夹&#xff0c;并设置共享。 ISS配置信息&#xff1a; 邮件网站&#xff0c;添加网站 webapi asp.net core发布到ISS服务器网页无法打开解决方法 点击ISS Express测试&#xff0c;可以成功打开网页。 点击生成&#xff0c;发布到服务器 找到服务器IP…

idm对比aria2哪个好 aria2和idm哪个快 Aria2和IDM的原理

一、idm对比aria2哪个好 下面对aria2和idm进行对比&#xff0c;看看哪款更好。 idm: 优势&#xff1a; 1&#xff09;可将下载速度提升5倍以上&#xff1b; 2&#xff09;界面友好&#xff0c;操作简便&#xff1b; 3&#xff09;支持多个主流的浏览器&#xff1b; 4&am…

基于Vue的娱讯移动端APP前端设计与实现

目 录 摘 要 Abstract 引 言 1绪论 1.1课题背景及目的 1.1.1移动端APP发展简介 3 1.1.2移动端APP的优势 3 1.2前端开发相关技术 1.2.1前端开发工具介绍 3 1.2.2 前端开发相关技术介绍 4 1.3本章小结 2系统分析 2.1功能需求分析 2.2系统工作流程 2.3本章小结 3系统设…

自研cloud框架专题–通用cache模块(五)

通用cache模块 项目特点1.保留原框架的集成&#xff0c;扩展&#xff0c;配置能力2.对于spring-cache增强1.引入核心依赖2.开启多cache配置2.自选缓存pom依赖 二:使用示例1.api示例2.注解示例三:配置说明1.REDISSON_LOCAL_MAP2.REDISSON_2PC 开源地址:https://github.com/28928…