JavaScript 懒加载图片
来源:互联网 发布:哥伦比亚大学 知乎 编辑:程序博客网 时间:2024/05/17 06:27
1.什么是懒加载
当图片出现在可视区域时才加载图片。
2.懒加载实现方式
核心:可视区域(clientHeight)+滚动条距离顶部高度(scrollTop) > 元素到顶部距离(offsetTop)
0.获取元素到顶部的距离(offsetTop)
1.监听滚动
2.在滚动方法里,实时获取可视区域(clientHeight) 和 滚动条距离顶部高度(scrollTop)
3.对单个img进行懒加载
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title><style type="text/css">body{margin: 0px;}</style></head><body><div style="width: 100px;height: 100px;margin-top: 1200px;"><img data-src="img01.png" width="100px" height="100px" style="margin-top: 1200px;" id="img01"/></div><script type="text/javascript">var img01=document.getElementById('img01');window.onscroll=function () {//元素距离顶部的高度var oHeight=img01.offsetTop;//可视区域var height=document.documentElement.clientHeight;//滚动条距离顶部高度var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;if (height+scrollTop>oHeight) {img01.src=img01.getAttribute("data-src");}}</script></body></html>
4.对多个标签进行懒加载
在需要懒加载的img标签的class属性添加上“lazyLoad”
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title><style type="text/css">body{margin: 0px;}</style></head><body><div style="width: 100px;height: 100px;margin-top: 100px;"><img data-src="img01.png" width="100px" height="100px" style="margin-top: 1px;" class="lazyLoad"/></div><div style="width: 100px;height: 100px;margin-top: 300px;"><img data-src="img01.png" width="100px" height="100px" style="margin-top: 1px;" class="lazyLoad"/></div><div style="width: 100px;height: 100px;margin-top: 300px;"><img data-src="img01.png" width="100px" height="100px" style="margin-top: 1px;" class="lazyLoad"/></div><div style="width: 100px;height: 100px;margin-top: 300px;"><img data-src="img01.png" width="100px" height="100px" style="margin-top: 1px;" class="lazyLoad"/></div><script type="text/javascript">var imgArray=document.getElementsByClassName("lazyLoad");var len=imgArray.length;for (var i = 0; i < len; i++) {var oHeight=imgArray[i].offsetTop;//可视区域var height=document.documentElement.clientHeight;if (oHeight<height) {imgArray[i].src=imgArray[i].getAttribute("data-src");}}window.onscroll=function(){for (var i = 0; i < len; i++) {var oHeight=imgArray[i].offsetTop;//可视区域var height=document.documentElement.clientHeight;//滚动条距离顶部高度var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;if (height+scrollTop>oHeight) {if (imgArray[i].src=="") {imgArray[i].src=imgArray[i].getAttribute("data-src");}}}};</script></body></html>
阅读全文
0 0
- JavaScript 懒加载图片
- 【JavaScript】图片懒加载
- JavaScript进阶--图片懒加载
- javascript 图片 懒加载、预加载
- 原生javascript图片懒加载效果代码。
- 基于javascript实现图片懒加载
- JavaScript:原生JS实现图片懒加载
- JavaScript 预先加载图片
- javascript图片加载
- javascript图片延迟加载
- javascript延迟加载图片
- javascript图片预加载
- Javascript图片预加载
- javascript图片懒加载与预加载的分析
- Javascript之预加载图片
- JavaScript实现图片预加载
- javascript图片预加载技术
- javascript图片预加载技术
- 【PHP】深入理解PHP的session。
- C#跨窗体传值的几种方法分析(很详细)
- 使用ARM芯片的小型NAS设备的一次存储故障的检修
- 最大连续子数组的和(记录子数组范围)
- Dubbo-Admin管理平台和Zookeeper注册中心的搭建
- JavaScript 懒加载图片
- Python爬虫利器之Beautiful Soup的用法
- FFT入门
- 达人篇:3.2)零缺陷管理法;
- 优雅的使用Markdown标记语言
- 不可以在列表模板里面写<? ?>中php开始、结束标签
- 我的android-studio在Ubuntu16.04运行了
- 颜色rgba表示
- 第四天:外边距重叠、css背景设置、float浮动、伪元素