【JS】监听元素重叠

常见场景: 滚动条滚动到底部时加载数据,如果监听滚动事件,会造成不必要的浪费。如频繁滚动但未达底部。可以建立观察者,监听loading标识元素到达视口某位置后再加载数据。

步骤

创建一个新的 IntersectionObserver 对象,当其监听到目标元素的可见部分(的比例)超过了一个或多个阈值(threshold)时,会执行指定的回调函数。

  • 创建观察者:new IntersectionObserver(),接受两个参数
    • 参数1:回调函数
      参数entries观察的所有元素的集合。被观察元素的isIntersecting属性为true时表示已超过重叠阈值
    • 参数2:构造器
      root为与被观察元素重叠的元素,默认为null,表示顶级文档视口。thresholds表示阈值,小数表示百分比,即重叠比例,默认为0。
  • 观察元素:IntersectionObserver.observe(),一个观察者可以观察多个元素,当观察多个元素时,参数1中的entries也为多个。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Scroll Loading</title><style>.content {height: 800px;overflow-y: scroll;padding: 20px;border: 1px solid #333;}.box {width: 100%;height: 400px;background-color: #bfd;margin-bottom: 30px;}#loading {display: block;text-align: center;padding: 10px;background-color: #f1f1f1;margin-top: 10px;}.hidden {display: none;}</style>
</head><body><div class="content"><div class="box">1</div><div class="box">1</div><div class="box">1</div><div class="box">1</div><div id="loading" class="hidden">Loading...</div></div><script>// 建立观察者const loading = document.getElementById('loading');let ob = new IntersectionObserver(function (entries) {let loading = entries[0]console.log(loading.isIntersecting);if (loading.isIntersecting) {console.log('加载更多');}}, {thresholds: 0.5})ob.observe(loading);</script>
</body></html>

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

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

相关文章

JavaScript中什么叫深拷贝?

在 JavaScript 中&#xff0c;深拷贝指的是创建一个新的对象&#xff0c;这个新的对象与原始对象完全独立&#xff0c;没有任何共享的属性或者数据&#xff0c;它们不共享同一块内存地址。深拷贝会复制原始对象的所有属性和嵌套对象的所有属性&#xff0c;包括嵌套对象中的属性…

C#,简单,精巧,实用的文件夹时间整理工具FolderTime

点击下载本文软件&#xff08;5积分&#xff09;&#xff1a; https://download.csdn.net/download/beijinghorn/89071073https://download.csdn.net/download/beijinghorn/89071073 百度网盘&#xff08;不需积分&#xff09;&#xff1a; https://pan.baidu.com/s/1FwCsSz…

数字乡村创新之路:科技引领农村实现高质量发展

随着信息技术的快速发展&#xff0c;数字乡村建设已成为推动农村高质量发展的重要引擎。数字乡村通过科技创新&#xff0c;不仅改变了传统农业生产方式&#xff0c;也提升了乡村治理水平&#xff0c;为农民带来了更加便捷的生活。本文将从数字乡村的内涵、科技引领农村高质量发…

HCIP综合实验

各个路由器配置 R1 配置IP [R1-GigabitEthernet0/0/0]ip add 192.168.1.2 24 [R1-Serial4/0/0]ip add 15.1.1.1 24 配置缺省 [R1]ip route-static 0.0.0.0 0 15.1.1.2 接受认证 [R1-Serial4/0/1]ppp pap local-user tao password cipher tao 配置隧道地址 [R1-Tunnel…

QImage加载opencv读取的图片出错

今天写opencv的时候&#xff0c; 突然发现一件很奇怪的事情&#xff0c; 用摄像头读取的图片&#xff0c; 用QImage加载的时候传入img.data&#xff0c; 一切都很正常&#xff0c; 但是如果我是从保存的图片读取灰度图&#xff0c; 传入img.data&#xff0c; 它会告诉我QImage不…

微信怎么恢复好友?7个方法助你轻松寻回失联好友

在数字化社交日益盛行的今天&#xff0c;微信作为我们日常生活中不可或缺的沟通工具&#xff0c;承载着与亲朋好友、同事伙伴之间的深厚情谊。然而&#xff0c;有时由于误操作或其他原因&#xff0c;我们可能会不小心删除了某些重要的微信好友&#xff0c;这时&#xff0c;如何…

python file怎么打开

Python open() 方法用于打开一个文件&#xff0c;并返回文件对象&#xff0c;在对文件进行处理过程都需要使用到这个函数&#xff0c;如果该文件无法被打开&#xff0c;会抛出 OSError。 注意&#xff1a;使用 open() 方法一定要保证关闭文件对象&#xff0c;即调用 close() 方…

管理科学笔记

1.线性规划 画出区域&#xff0c;代入点计算最大最小值 2.最小生成树 a.断线法&#xff0c;从大的开始断 b.选择法&#xff0c;从小的开始选 3.匈牙利法 维度数量直线覆盖所有的0 4.一直选最当前路线最短路径 5.线性规划 6.决策论

OSError: Can‘t load tokenizer for ‘bert-base-chinese‘

文章目录 OSError: Cant load tokenizer for bert-base-chinese1.问题描述2.解决办法 OSError: Can’t load tokenizer for ‘bert-base-chinese’ 1.问题描述 使用from_pretrained()函数从预训练的权重中加载模型时报错&#xff1a; OSError: Can’t load tokenizer for ‘…

「绩效管理」某开发区基层干部绩效管理体系完善项目纪实

【客户背景】如今随着经济发展&#xff0c;很多地区ZF的基层组织承担了比以往更多的职责&#xff0c;对他们的工作评价方法成为了相应的难点。类似的&#xff0c;在大量企业中也存在这样的情况&#xff0c;集团化的公司下有大量的分、子公司&#xff1b;许多公司在不同区域开设…

剑指Offer题目笔记24(集合的组合、排序)

面试题79&#xff1a; 问题&#xff1a; ​ 输入一个不含重复数字的数据集合&#xff0c;找出它的所有子集。 解决方案&#xff1a; ​ 使用回溯法。子集就是从一个集合中选出若干元素。如果集合中包含n个元素&#xff0c;那么生成子集可以分为n步&#xff0c;每一步从集合中…

大语言模型中常见小模型LLM垂直领域应用微调数据集

文章目录 大语言模型中常见小模型LLM垂直领域应用微调数据集网友对于微调的看法本文内容参考、汇总了以下开源LLMAdvertiseGen广告LLM数据数据集结构ChatGLM3-6B对于微调数据结构的定义原始数据预处理代码 通用医学LLM数据集Chinese-medical-dialogue-data原始数据集微调数据格…

tomcat配置web项目

文章目录 目录结构I server.xml1.1 contex标签1.2 server.xml端口说明II 其他方式部署2.1 IDE部署2.2 配置Tomcat服务III 清空大日志文件内容see also项目的一般结构目录结构 /bin:脚本文件目录。/common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载)…

Python控制浏览器——selenium模块

Python控制浏览器——selenium模块 目录 Python控制浏览器——selenium模块准备工作【1】安装selenium【2】安装浏览器驱动【3】测试驱动&#xff08;作者是Edge&#xff09; 导航和操作窗口导航返回前进刷新最大化窗口切换选项卡 查找和操作元素8种基本By定位方式[1]ID[2]Name…

ndk ffmpeg

报错&#xff1a; 解决办法&#xff1a; 报错 解决办法&#xff1a;

纯CSS实现未读消息显示99+

在大佬那看到这个小技巧&#xff0c;我觉得这个功能点还挺常用&#xff0c;所以给大家分享下具体的实现。当未读消息数小于100的时候显示准确数值&#xff0c;大于99的时候显示99。 1. 实现效果 2. 组件封装 <template><span class"col"><sup :styl…

【代码】C语言|保留小数点后n位并四舍五入,便于处理运算和存储不善的浮点数

前言 有个人跟我说浮点数运算起来非常麻烦&#xff0c;总是算着算着丢失精度&#xff0c;导致计算结果取int的时候取不准。毕竟系统也没有自动根据这个数的精度四舍五入的功能。 比如int(2.999999999999999)2&#xff0c;但是float(2.999999999999999)3.000000。 我觉得这个问…

关于51单片机TMOD定时器的安全配置

定时器介绍&#xff1a; -------------------------------------------------------------------------------------------------------------------------- 首先配置的是控制寄存器 TCON 说直白点&#xff0c;这个寄存器就是用来计数的&#xff0c;打开计时器&#xff0c;关…

35岁是否会失业吗?

今天来和大家聊聊程序员年龄问题 其实无论是任何行业&#xff0c;对于任何一个普通员工来说&#xff0c;35岁是否会失业这个问题&#xff0c;其实就像是一场人生的棋局&#xff0c;充满了变数和可能性。在这个问题上&#xff0c;我想通过一个小故事&#xff0c;来为大家分享一些…

Python-VBA编程500例-029(入门级)

连续字符段索引(Index of Consecutive Character Segments)在实际应用中具有多种场景。常见的应用场景有&#xff1a; 1、文本分析&#xff1a;在文本处理和分析中&#xff0c;连续字符段索引可以用于识别重复的字符序列或模式。这些模式可能对于理解文本的结构、风格或特定含…