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

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

导文

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

文章重点

内容效果展示:

当div拉到底部的时候:
image.png

编辑器返回:
image.png

代码展示

在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事件,可以获取滚动容器的相关属性,如滚动条的位置、可视区域的高度以及整个内容的高度。当滚动条到达底部时,可以执行相应的懒加载逻辑,比如加载更多数据。

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

目录
相关文章
|
7月前
|
移动开发 JavaScript 前端开发
在项目中引入和使用 SCSS 文件
在项目中引入和使用 SCSS 文件
776 156
iframe 在线预览pdf、word、excel、ppt、txt、图片、视频
iframe 在线预览pdf、word、excel、ppt、txt、图片、视频
|
定位技术 开发者
uni-app获取地理位置
uni-app获取地理位置
2070 0
|
Web App开发 前端开发 JavaScript
前端性能优化利器:图片懒加载实战解析
前端性能优化利器:图片懒加载实战解析
|
存储 JavaScript API
Vue3实现图片懒加载及自定义懒加载指令
Vue3实现图片懒加载及自定义懒加载指令
1707 1
|
JSON JavaScript 定位技术
Echarts 绘制地图(中国、省市、区县),保姆级教程!
Echarts 绘制地图(中国、省市、区县),保姆级教程!
28913 154
|
前端开发 JavaScript 搜索推荐
前端懒加载:提升页面性能的关键技术
前端懒加载是一种优化网页加载速度的技术,通过延迟加载非首屏内容,减少初始加载时间,提高用户访问体验和页面性能。
Element UI【详解】el-scrollbar 滚动条组件 —— 监听滚动条的滚动,跟随页面一起滚动,获取滚动距离,隐藏水平滚动条等
Element UI【详解】el-scrollbar 滚动条组件 —— 监听滚动条的滚动,跟随页面一起滚动,获取滚动距离,隐藏水平滚动条等
3462 0
|
前端开发 JavaScript 开发者
利用 el-select 和 el-tree 实现树形结构多选框联动功能
本文详细介绍了如何使用ElementUI中的el-select下拉选择器和el-tree树形控件来实现多功能联动选择器,包括多选、删除、搜索、清空选项等功能。通过树形控件展示复杂的层级结构,用户可以通过下拉选择树形节点,实时搜索节点,且支持批量选择和删除功能。文中提供了完整的HTML、JavaScript和CSS代码实现,帮助开发者快速集成此功能。
6664 0
利用 el-select 和 el-tree 实现树形结构多选框联动功能