前端图片延迟加载详细讲解

        原本是打算昨天昨天下午的时候就写一篇关于前端图片延迟加载的详细技术的博客的,没想到下午公司项目出现了一些问题,所以一直在改代码进行调试,今天白天一整天又在外面跑,回来已经傍晚了,刚吃完饭,就想着赶紧补上,这样很多不懂这方面具体实现的小伙伴们也能早点学习经验。

         前端页面的用户体验对于一个网站来说是至关重要的,我们在访问一些图片量比较大的网站的时候,往往会有这样的感受:显示在我电脑屏幕可视区域的图片总是不能及时的刷出来,这就造成了对于一些没有什么耐心的用户而言,他们就不愿意多等下去,索性直接关闭了网站去看其他的网站,这就使得本网站的用户量的流失,这往往是一个网站最不愿意看到的情况,那么对于这样的情况而言,开发者们不断的努力,很快就想到了解决的方案,让在可视区域的图片立即加载进来,而让不在可视区域并且需要通过滚动条进行滚动显示的图片在图片滚动到可视区域内再显示出来,这就比一次性把所有的图片资源加载进来从而造成图片刷新较慢的用户体验好的多的多。

        那么,图片延迟加载的技术具体如何实现呢?下面来做详细的介绍:

        首先,定义图片为三列,一共有5行,具体代码如下:                 

       里面用到的bootstrap的布局技术(当然,这不是重点),请看img标签中的src,一开始我们并没有给它具体的图片的资源路径,而是自己定义了一个属性 x-src,该属性的值是图片图片的资源路径,每一行的img都是如此,接下来,当页面载入的时候,我们使用jquery(当然,你想javascript原生的代码也可以,我这里只是为了省时间而已)来循环遍历每一个img,判断每一个图片是否在当前可视区域内,是则显示图片,否则稍后处理,这里需要知道三个数据:

             注:因为我所写的是当图片的一半进入的浏览器的可视区域内才将这张图片进行加载,所以需要第三个数据,这个看个人的需求是什么,       如果你的需求是图片只要已进入可视区域内就加载,可直接忽略第三个数据!!!!

                                   1:浏览器可视区域的高度

                                   2:图片相对于文档的偏移量(这里只需要高度上的偏移量)

                                   3:图片元素本身的高度

             如果图片先对于文档的偏移量+图片元素本身的高度的一半    <  浏览器可视区域的高度,即表明图片已经有一半进入的可视区域了,那么我就应该要把这张图片加载进来了,可是img标签的src是为空的,x-src的值才是图片的资源路径,这个时候就需要用jquery将img 标签的x-src值传给src,从而将图片加载进来,具体实现代码如下:

                    

             具体的效果如下:

                      

           你可以在控制台看到,虽然我们有5行图片,每行有3列,但加载进来的图片只有第一列(图片高度有超出一半的img才会加载图片的资源进来),其他的都没有加载进来,这就使得图片的刷新会很快出现效果,那么接下来,用户需要看到更多的图片,这个时候需要进行滚动条往下滚动,去刷新更多的图片,那么这个时候我们除了上述的3个数据之外,还需要知道当前滚动条滚动的距离,如果:

                              图片先对于文档的偏移量+图片元素本身的高度的一半    <  浏览器可视区域的高度  + 当前滚动条滚动的距离,那么表明当前图片已经在可视区域内,并且图片有一半以上的高度是在可视区域内,那么将图片进行加载进来,具体代码如下:

                    

           具体效果如下:

                    

          在控制台你可以看到,随着滚动条的滚动,加载进来的图片由原来的三张变成了现在的六张,滚动条不断的往下滚动,图片就会不断的加载进来,从而得到更好的用户体验。

          这就是图片延迟加载的具体实现,是不是觉得图片的炫酷,如果你想自己看下具体的实现效果,可以点击我的网址进行查看:

                                    http://meichao.sinaapp.com/show.html

原文链接:http://www.gbtags.com/gb/share/6366.htm?

前端瀑布流图片展示技术大全 为了达到无JavaScript实现瀑布流布局的目标,我们可以借助CSS强大的布局能力。在现代网页设计中,Flexbox和CSS Grid布局技术是实现复杂布局的两个主流选择。Flexbox是一种一维布局模型,它允许容器内的项目在行或列中灵活排列,非常适合实现瀑布流效果。CSS Grid则是一个二维布局系统,它对行列的概念进行了扩展,不仅可以控制行和列,还可以控制行和列之间的间距,非常适合实现响应式的瀑布流布局。 阅读详情

相关推荐

【阿里云大模型高级工程师ACP习题集】2.7 通过微调增强模型能力 (下篇)(⭐️⭐️⭐️ 重点章节!!!)

【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配!

davidkorhenn的博客 1090

延迟加载图片(懒加载)

什么是延迟加载 延迟加载又称懒加载(lazyload),是前端开发人员对网页性能优化的一种方案。延迟加载主要针对两种情况进行优化,一种是针对数据做延迟加载优化,一种是针对对象实例延迟创建优化。 工作原理: 在HTML构造输出的时候,先不要设置图片标签img的src属性,改用其他属性(如lazy); 要判断图片(其他资源同理)是否在当前可视屏范围; 根据第二条的判断把其他属性(如lazy)中保存的...

zLanaDelRey的博客 1005

RK3588视频转码实战:如何用FFmpeg+MPP实现16路1080P硬解压(附完整命令)

本文详细介绍了如何在RK3588处理器上使用FFmpeg和MPP框架实现16路1080P视频的硬件加速转码。通过解析RK3588的视频处理架构、环境搭建步骤和实战配置,提供了完整的命令示例和性能调优建议,帮助开发者高效处理多路视频转码任务。

weixin_29233333的博客 532

前端加载图片的几种加速方式

加载图片的几种加速方式

weixin_42464273的博客 1674

前端图片加载太慢?用 loading=“lazy“ 指令,延迟加载省流量

简单来说,当网页中包含带有 loading="lazy" 属性的图片时,浏览器在初始加载网页时,不会立即加载这些图片,而是会等到用户滚动页面,使图片即将进入可视区域时,才会触发图片的加载操作。它能够让浏览器根据用户的浏览行为,智能地决定何时加载图片资源,将图片的加载时机推迟到必要的时候,从而减少初始加载阶段的网络请求数量和数据传输量,达到优化页面加载性能、节省流量的目的。相信随着浏览器技术的不断发展,loading="lazy" 指令将会得到更广泛的应用,成为前端图片加载优化的重要工具。

2503_92849275的博客 1481

案例——图片延迟加载(又称懒加载)

图片延迟加载图片的懒加载) 图片延迟加载前端优化的重要手段之一,开始加载页面的时候,并没有真实的图片,当页面结构和数据都呈现完成后,在加载真实的图片 步骤: 在结构上,我们把img图片放到div盒子中,开始的时候图片的src为空,我们就把图片的地址存放到自定义属性 data-src中,我们给图片所在的盒子设置一个默认的背景图片占位(要求这张图越小越好 1KB) 在JS中,当监听到页面中的结构和数据都加载完成后(或者设置一个间隔时间),开始把data-src自定义属性中存储的真实图片地址.

gmh1118的博客 495

Web 前端性能优化之三:加载优化

Web 前端性能优化之三:加载优化

碳学长的博客 2135

前端图片懒加载

简单来说,当网页中包含带有 loading="lazy" 属性的图片时,浏览器在初始加载网页时,不会立即加载这些图片,而是会等到用户滚动页面,使图片即将进入可视区域时,才会触发图片的加载操作。它能够让浏览器根据用户的浏览行为,智能地决定何时加载图片资源,将图片的加载时机推迟到必要的时候,从而减少初始加载阶段的网络请求数量和数据传输量,达到优化页面加载性能、节省流量的目的。相信随着浏览器技术的不断发展,loading="lazy" 指令将会得到更广泛的应用,成为前端图片加载优化的重要工具。

dd的博客 686

前端性能优化】前端懒加载

目录1. 什么是懒加载?2. 图片懒加载的基本实现3. 结合节流优化图片懒加载4. Intersection Observer实现图片懒加载5. 延迟加载视频6. 使用第三方延迟加载库 1. 什么是懒加载? 懒加载也叫做延迟加载、按需加载,指的是在长网页中延迟加载图片数据,是一种较好的网页性能优化的方式。 在比较长的网页或应用中,如果图片很多,所有的图片都被加载出来,而用户只能看到可视窗口的那一部分图片数据,这样就浪费了性能。 如果我们使用图片的懒加载就可以解决以上问题。在滚动屏幕之前,可视化区域之外的图片

公众号:前端充电宝 2619

前端学习笔记68-背景练习

前端学习笔记68-背景练习 这个背景练习时两个,背景本身不难,我就不多说了,里面提到了一个图片加载的问题。 看下面代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="wid

weixin_45034895的博客 165

图片懒加载

参考:https://blog.csdn.net/weixin_43913643/article/details/132975686参考:https://blog.csdn.net/qq_44947815/article/details/125286969图片懒加载是前端性能优化中的一项重要技术。它的核心思想是在页面加载时,只显示用户视口内的图片,而视口外的图片则等到它们即将进入视口时再进行加载。这样做可以显著提升页面的初始化渲染速度和用户体验。总的来说,图片懒加载不仅能够提升页面加载速度,还能够减少服务器

www0925的博客 919
上一篇: 极客编程小挑战#31:生成注册页面的显示效果
下一篇: 前端图片延迟加载详细讲解
kvhur
博客等级 码龄16年 3粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值