图片懒加载可以极大的减轻服务器请求的负担,如果没有做这样的操作,一个页面很多图片同时请求,就会渲染慢,影响用户体验!
原理其实很简单,就是滚动条拉下来显示的时候再加载显示出真实的图片,在不显示的区域的图片,一律使用一张很小的loading图片显示即可。当滚动条拉下来的高度加上显示的高度如果大于等于图片距离顶部的高度,也就是说看的到这张图片了,那么就替换真实图片显示。

高度的计算
$(window).height()+$(window).scrollTop()>=$node.offset().top;
图片属性值的替换,将真实的图片路径替换loading图片
$img.attr('src',$img.attr('data-src'));
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>图片懒加载</title>
<style>.container {max-width: 800px;margin: 0 auto;
}
.container:after{content: '懒加载可以缓解服务器的压力';display: block;clear: both;
}
.container img {width: 50%;
}</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head><body>
<div class="container">
<img src="loading.gif" data-src="z.jpg" />
<img src="loading.gif" data-src="1.jpg" />
<img src="loading.gif" data-src="2.jpg" />
<img src="loading.gif" data-src="3.jpg" />
<img src="loading.gif" data-src="fruits.jpg" />
<p style="height:200px"></p>
</div><script type="text/javascript">
showImgs();
$(window).on('scroll',function(){showImgs()});function showImgs(){$('.container img').not('[isLoaded]').each(function(){var $node=$(this)if(isShow($node)){replaceImg($node)}})}
/*
图片可见再加载
窗口的高度加上滚动条滚动过的高度大于等于图片到顶点的距离,就加载真实图片
-300只是为了显示效果用
*/
function isShow($node){return $(window).height()+$(window).scrollTop()-300>=$node.offset().top;}
//替换成真实图片
function replaceImg($img){$img.attr('src',$img.attr('data-src'));$img.attr('isLoaded',true);//标记已加载的图片}
</script>
</body>
</html>

我们可以通过F12的Network,拉动滚动条查看图片加载情况!
其他一些常用的获取页面宽高的js

可视区域的宽: document.body.clientWidthdocument.body.offsetWidth
可视区域的高: document.body.clientHeightdocument.body.offsetHeight整个页面的宽 document.body.scrollWidth
整个页面的高: document.body.scrollHeight滚动条滚掉的高度: document.body.scrollTop
滚动条滚掉的左边: document.body.scrollLeft
如果是<!DOCTYPE html>这样的声明,就需要使用下面这样来获取
document.documentElement.scrollTop
document.documentElement.scrollLeft屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight

jQuery图片懒加载示例(滚动函数再加载)相关推荐

  1. Jquery图片懒加载和预加载

    Jquery图片懒加载和预加载 懒加载 1.什么是懒加载 Lazy Load也叫懒加载,延迟加载,顾名思义,就是在图片未到达可视区域时,不加载图片,我们常常在很多的优秀网站上看到类似的例子,例如迅雷. ...

  2. jQuery 图片懒加载的方法 以及用$('.lazyImg').each()出错的地方,记录一下~

    我高小莫,今天在这里发誓,如果以后能不用jQuery 的我绝不再用,做习惯了前后端分离的项目,再次回到jQuery ,发现异常的恶心~~~~· 不怪谁,怪就怪当初我,选择项目架构的时候为了省力,竟然选 ...

  3. Jquery图片轮播(连续滚动+突出显示)

    之前已经写过很多的图片轮播了,但以下这种还真的没想到过 实现效果(图片来源于百度,侵权请与本人联系) 主要原理:利用浮动特性和超出部分隐藏,动态改变第一张图的右偏移量,动态改变图片排列,实现轮播 利用 ...

  4. 一个数加100是完全平方数,再加168又是一个完全平方数

    1.说明 暴力法都知道,但是如果起始没弄好会忽略-99这个数 更优的解法需要好的思路 package mainimport ("fmt""math" )func ...

  5. java页面展示流式图片,javascript瀑布流式图片懒加载实例解析与优化

    之前写过一版图片"懒加载"的文章,刚好周末在整理文件的时候,大概又看了一遍之前写的代码发现有很多可以优化的地方. 这篇文章主要就是结合上篇<javascript瀑布流式图片懒 ...

  6. html字体加载规则,CSS-等待字体加载,然后渲染网页

    CSS-等待字体加载,然后渲染网页 我正在使用@ font-face将字体嵌入到我的网站中. 首先,文本将作为系统默认值呈现,然后(假定字体文件已加载)正确的字体将在几分之一秒后呈现. 有没有一种方法 ...

  7. js return加分号_JavaScript语句后应该加分号么?

    首先,加还是不加,这是一个书写风格问题.而书写风格通常有一些外在的考量,比如团队所建立的规则或习惯.@玉伯  的答案就是基于此.我对此基本赞同,不过这其实有点避重就轻,呵呵.另外,即使团队有这样的规则 ...

  8. 使用jQuery实现图片懒加载原理

    在网页中,常常需要用到图片,而图片需要消耗较大的流量.正常情况下,浏览器会解析整个HTML代码,然后从上到下依次加载的图片标签.如果页面很长,隐藏在页面下方的图片其实已经被浏览器加载了.如果用户不向下 ...

  9. JQuery实现网页图片懒加载

    使用img标签加载图片,在网页上显示图片,这里就简单的设置一下样式了,主要目的是展示图片的不同加载方式. 1.普通实现方式 普通的实现方式就是不做任何处理,需要使用到图片时就去加载图片,这些图片一般存 ...

最新文章

  1. python模块--如何相互调用自己写的模块
  2. 概念的图解 —— 数学
  3. 日常shell使用小结
  4. python美化输出模块_Python 格式化输出 ( 颜色 )
  5. Nginx 反向代理 websocket 协议
  6. matlab模糊推理,模糊推理系统的matlab代码
  7. redis经典三节点高可用哨兵模式集群搭建
  8. 新手理解的JS原型链 1
  9. 1000道Python题库系列分享七(30道)
  10. 微软被诉Windows字体侵权 微软版权意识翻车了
  11. VirtualBox扩容失败-Progress state: VBOX_E_NOT_SUPPORTED
  12. 正常网页开发如何解除父容器中子容器的浮动问题
  13. 【小程序源码】修复图片音频全新升级带特效神器小游戏微信小程序源码下载-多种游戏支持
  14. LCA问题——倍增算法,Tarjan算法讲解
  15. 数据结构实验报告——线性表
  16. Android 和风天气+腾讯地图
  17. 计算机网络通信同步异步效率,同步传输和异步传输的区别及优缺点
  18. 安卓手机状态栏显示秒_让安卓手机上方状态栏时间显示精确到秒方法
  19. 小驼峰大驼峰的写法规范
  20. 计算机视觉检测 白皓月,Hough变换和轮廓匹配相结合的瞳孔精确检测算法

热门文章

  1. Composer的Autoload源码实现2——注册与运行
  2. Windows 7 添加SSD硬盘后重启卡住正在启动
  3. SQL 去除重复、获取最新记录
  4. Liver Writer打开以前的日志/页面
  5. K8S_Google工作笔记0009---通过二进制方式_操作系统初始化
  6. 微软API工作笔记001---API大全查询
  7. 2015年6月24日日报
  8. 2014年0417的工作计划
  9. 终止运行线程的注意事项
  10. poj3660 Cow Contest