博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生js实现懒加载并节流
阅读量:5303 次
发布时间:2019-06-14

本文共 1141 字,大约阅读时间需要 3 分钟。

像淘宝网站等,页面中有着大量图片,一次性全部加载这些图片会使浏览器发送大量请求和造成浪费。采用懒加载技术,即用户浏览到哪儿,就加载该处的图片。这样节省网络资源、提升用户体验、减少服务器压力。方法1:使用scrollTop/innerHeight/offsetTop基本知识点:window.innerHeight:浏览器可视区域高度document.body.scrollTop || document.documentElement.scrollTop:浏览器滚动条滚过高度img.offsetTop:元素距文档顶部的高度 这里有张图可以非常清晰的理解上述概念:加载条件:img.offsetTop < window.innerHeight + document.body.scrollTop;代码如下:函数节流:方法2:使用IntersectionObserver方法基本知识:var io = new IntersectionObserver(callback, option); //开始观察io.observe(document.getElementById('example')); //停止观察io.unobserve(element); // 关闭观察器io.disconnect();上面代码中,构造函数IntersectionObserver接收两个参数:callback是可见性变化时的回调函数,option是配置对象(该参数可选)。这个构造函数的返回值是一个观察器实例。构造函数的返回值是一个观察器实例,实例的observe方法可以指定观察哪个DOM节点。上面代码中,observe的参数是一个DOM节点对象。如果要观察多个节点,就要多次调用这个方法。callback函数的参数(entries)是一个数组,每个成员都是一个IntersectionObserverEntry对象。举例来说,如果同时有两个被观察的对象的可见性发生变化,entries数组就会有两个成员intersectionRatio:目标元素的可见比例,完全可见时为1,完全不可见时小于等于0。代码如下:完整代码:懒加载+函数节流参考资料:1:https://www.jianshu.com/p/9b30b03f56c22:http://www.ruanyifeng.com/blog/2016/11/intersectionobserver_api.html3:https://blog.csdn.net/kayron/article/details/78643620

 


 

转载于:https://www.cnblogs.com/menglong1214/p/10386918.html

你可能感兴趣的文章
05_ssm基础(三)之Spring基础
查看>>
【HackerRank】Maximizing XOR
查看>>
如何在C/C++中动态分配二维数组
查看>>
Visual FoxPro权威指南pdf
查看>>
hdu 4283 You Are the One 区间DP
查看>>
SSH客户端,FinalShell服务器管理,远程桌面加速软件,支持Windows,Mac OS X,Linux,版本2.6.3.1...
查看>>
(转)表单元素与提示文字无法对齐的问题(input,checkbox文字对齐)
查看>>
实验 5 编写、调试具有多个段的程序
查看>>
[USACO 2012 Jan Silver] Bale Share【DP】
查看>>
office outlook 2010 设置开机自动启动并最小化——隐藏于任务栏通知区域
查看>>
Educational Codeforces Round 52 (Rated for Div. 2) D. Three Pieces
查看>>
day33
查看>>
redis学习(二)——String数据类型
查看>>
[转]CSS块级元素和行内元素
查看>>
数据结构之队列
查看>>
垃圾回收器
查看>>
20135317的博客目录
查看>>
认知的概率模型(ESSLLI教程) - 第五部分译文 - 奥卡姆剃刀和信仰守恒定律
查看>>
截取utf-8字符串原理
查看>>
文件输入样式修改
查看>>