首页 > 其他分享 >IntersectionObserver实现监听dom进入浏览器视口

IntersectionObserver实现监听dom进入浏览器视口

时间:2024-08-29 08:55:39浏览次数:16  
标签:img observer dom imgElement 视口 let entries IntersectionObserver

let img = document.getElementsByTagName("img");
 
const observer = new IntersectionObserver(entries => {
  //entries 是被观察的元素集合
  for(let i = 0, len = entries.length; i < len; i++) {
    let entries= entries[i];
    // 通过这个属性判断是否在视口中
    if(entries.isIntersecting) {
      const imgElement = entries.target;
      imgElement.src = imgElement.getAttribute("data-src");
      observer.unobserve(imgElement);
    }
  }
})
Array.from(img).forEach(item => observer.observe(item));

标签:img,observer,dom,imgElement,视口,let,entries,IntersectionObserver
From: https://blog.csdn.net/weixin_45580774/article/details/141664490

相关文章

  • 翻译_Clock Domain Crossing Design
    翻译_ClockDomainCrossingDesign原文标题及连接:ClockDomainCrossing(CDC)Design&VerificationTechniquesUsingSystemVerilog.作者:CliffordE.CummingsSunburstDesign,[email protected]摘要在多时钟设计中,需要在时钟域交叉(ClockDomainC......
  • Vue2中的事件修饰符 用于处理DOM事件的触发方式
    一、.stop1.功能:阻止事件冒泡,即停止事件向上传播到父元素。2.代码演示:<div@click="parentClick"> <[email protected]="childClick">Clickme</button></div>二、.prevent1.功能:阻止默认行为,例如阻止表单提交或链接跳转。2.代码演示:<[email protected]="su......
  • 用Adomian分解法解非线性偏微分方程
    导入Adomian分解方法得益与George.Adomian教授的开创性研究,在20世纪80年代提出和发展出来的。自提出以来已经被广泛运用于求解各种线性,非线性数学物理方程近似解和精确解,比如偏微分方程、延迟微分方程、积分微分方程、微分方程等。分解方法的特点是将方程的解分解成无穷级数的......
  • AppDomain.CurrentDomain.BaseDirectory是什么
    以下为ai解释,用到的知识点都在此记录下AppDomain.CurrentDomain.BaseDirectory是一个属性,它返回当前应用程序域的基目录,即包含应用程序的目录的路径。这个路径通常是安装应用程序的目录,并且通常以反斜杠(\或者\)结尾。如果你想获取这个路径,你可以直接调用这个属性。解决方案1:s......
  • (论文解读)Domain Adaptation via Prompt Learning
    摘要无监督域适应(UDA)旨在将从带有标签的源域数据中学习到的模型适应到未标注的目标域数据集。现有的UDA方法通过对齐源域和目标域特征空间来学习领域不变特征。这种对齐是通过约束实现的,例如统计差异最小化或对抗学习。然而,这些约束会导致语义特征结构的扭曲和类别判别性......
  • 论文解读Multi-Prompt Alignment for Multi-Source Unsupervised Domain Adaptation
    Multi-PromptAlignmentforMulti-SourceUnsupervisedDomainAdaptationNeurlIPS2023摘要大多数现有的无监督域适应(UDA)方法依赖于共享网络来提取领域不变特征。无论如何,当面对多个源域时,优化这样的网络涉及更新整个网络的参数,这样既昂贵又有挑战性,特别是与最小最大......
  • Part4-DOM学习笔记-获取元素属性及节点操作
    6.获取元素属性6.1获取元素属性获取元素的属性有两种方式:element.属性:获取内置属性值,元素本身自带的属性不能获取自定义属性代码示例如console.log(div.id)element.getAttribute(‘属性’):可以获取内置属性值可以获取自定义属性代码示例如下:console.......
  • 浏览器对象模型 BOM和文档对象模型DOM
    DOM(文档对象模型,DocumentObjectModel)是一个平台和语言无关的接口,它提供了一种结构化的方法来表示和操作HTML和XML文档。通过DOM,文档被表示为一个树状结构,文档的每个部分都可以作为一个对象进行访问和操作。一DOM的基本概念节点(Node):DOM树由各种节点组成,每个节......
  • random库
    random库1.随机种子random.seed()系统默认将时间戳设置为随机种子,每次随机数不一样,当手动设置后,每次随机产生的数会一样2.随机数字random.randint(a,b)从a,b之间随机一个整数random.randrange(a,b,stridw)从a到b,步长为s的序列中,随机一个数字random.random()从0~1......
  • CodeForces - 1336A Linova and Kingdom
    CodeForces-1336A就差一点点,很可惜,少发现个很显而易见的结论就是一个点的价值,实际上就是(这个点的深度-之后的点的数目)就是\(depth_i-size_i\)然后只要用dfs维护就好了然后把一个点的价值用STL优先队列放在一起,贪心完成。但是可能也算不上什么贪心,因为是很朴素的东西......