首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jquery延迟加载图片

基础概念

jQuery延迟加载图片(Lazy Loading)是一种优化网页性能的技术,它只在图片即将进入用户视口时才加载图片。这样可以减少初始页面加载时间,提高用户体验,特别是在包含大量图片的网页上。

优势

  1. 减少初始加载时间:只加载当前视口内的图片,减少服务器负载和带宽消耗。
  2. 提高页面性能:通过延迟加载,可以提高页面的响应速度和滚动流畅性。
  3. 节省流量:对于移动设备用户,可以显著减少数据使用量。

类型

  1. 基于JavaScript的延迟加载:使用JavaScript检测图片是否进入视口,然后加载图片。
  2. 基于Intersection Observer API的延迟加载:现代浏览器提供的API,可以更高效地检测元素是否进入视口。

应用场景

  • 电商网站的产品列表页
  • 社交媒体上的图片墙
  • 新闻网站的文章配图
  • 旅游网站的景点图片展示

实现方法

以下是一个使用jQuery实现图片延迟加载的示例代码:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Lazy Loading Images</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        img {
            width: 100%;
            height: auto;
            display: block;
            margin-bottom: 20px;
        }
    </style>
</head>
<body>
    <img data-src="image1.jpg" alt="Image 1">
    <img data-src="image2.jpg" alt="Image 2">
    <img data-src="image3.jpg" alt="Image 3">
    <!-- 更多图片 -->

    <script>
        $(document).ready(function() {
            function lazyLoadImages() {
                $('img[data-src]').each(function() {
                    if ($(this).offset().top < $(window).scrollTop() + $(window).height()) {
                        var src = $(this).attr('data-src');
                        $(this).attr('src', src).removeAttr('data-src');
                    }
                });
            }

            $(window).scroll(function() {
                lazyLoadImages();
            });

            // 初始加载视口内的图片
            lazyLoadImages();
        });
    </script>
</body>
</html>

常见问题及解决方法

  1. 图片加载顺序问题:如果图片依赖特定的加载顺序,可以考虑使用预加载技术或调整DOM结构。
  2. 滚动事件触发频繁:可以使用节流(throttling)或防抖(debouncing)技术来优化滚动事件的处理。
  3. 图片加载失败:可以添加错误处理机制,例如显示占位图或重试加载。
代码语言:txt
复制
$('img').on('error', function() {
    $(this).attr('src', 'placeholder.jpg');
});

通过以上方法,可以有效实现图片的延迟加载,并解决常见的技术问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

延迟加载图片的 jQuery 插件:Lazy Load

网站的速度非常重要,现在有很多网站优化的工具,如 Google 的 Page Speed,Yahoo 的 YSlow,对于网页图片,Yahoo 还提供 Smush.it 这个工具对图片进行批量压缩,但是对于图片非常多的网站...,载入网页还是需要比较长的时间,这个时候我们可以使用 Lazy Load 这个 jQuery 插件来延迟加载图片。...Lazy loader 是一个延迟加载图片的 jQuery 插件,在一些图片非常多的网站中非常有用,在在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它们所在的位置才加载,这样对于含有很多图片的比较长的网页来说...,可以加载的更快,并且还能节省服务器带宽。...Lazy Loader 使用也非常简单,首先确保你的页面已经加载 jQuery Javascript 库,然后在加载 Lazy Load 的 Javascript 文件: jquery.js

1.9K40
  • 基于jQuery或Zepto的图片延迟加载插件

    当我们网站的页面图片过多时,加载速度就会很慢。尤其是用手机2G/3G访问页面,不仅页面慢,而且还会用掉很多流量。...我们主题之前也都采用了图片的懒加载形式,但都不完美,部分主题还采用了占位图片来控制懒加载,今天换一种js图片懒加载,它原理就是将页面内所有需要加载的图片全部换成一张默认的图片(一般尺寸很小),只有图片在可视区域才去请求加载...实现原理 页面打开时首先会加载src里的图片,即很小的加载图;通过监听scroll...事件,当图片在可视区域时,使用data-src替换src,加载真正的图片。...--lazyload.js默认懒加载原图片属性是data-original--><img class="lazy" src="loading.png" data-original="img/example.jpg

    3.2K20

    WordPress图片延迟加载(懒加载)

    需求 当页面图片特别多,默认访问的时候就会将页面全部内容加载完,等待时间过长,体验欠佳,需改进。...如果不进行设置的话,一个页面会一次性加载所有的资源数据,考虑到不可能所有访客会全部将页面看完,也会导致流量的浪费,加载体验上有待提升。这里就采用延迟加载的方案。...延迟加载也称懒加载,前端实现的方式多种多样,可以通过css的属性设为display none,进入到view的图片再改为inline,inlineblock。...在插件设置界面可以选择延迟加载的内容,如:文本、小部件、缩略图、头像、图片、子窗口。 如果只想针对图片的话,只需要启动lazy load images即可。...如想要指定某些图片不不需要延迟加载,在图片标签上加入标记类名即可。 Post Views: 293

    2.5K30

    jQuery实现图片懒加载

    一、懒加载 1.什么是懒加载 目前,网络上各大论坛,尤其是一些图片类型的网站上,在图片加载时均采用了一种名为懒加载的方式,具体表现为,当页面被请求时,只加载可视区域的图片,其它部分的图片则不加载,只有这些图片出现在可视区域时才会动态加载这些图片...2.懒加载的原理 页面中的img元素,如果没有src属性,浏览器就不会发出请求去下载图片,只有通过javascript设置了图片路径,浏览器才会发送请求。...懒加载的原理就是先在页面中把所有的图片统一使用一张占位图进行占位,把正真的路径存在元素的自定义属性“data-src”(这个名字起个自己认识好记的就行)里,要用的时候就取出来,把它的值赋值给img的src...function lazyRender() { $('.container img').each(function(){ //判断图片是否出现在可视窗口和图片是否已经加载...isLoaded($(this)) ){ //若图片出现在可是区域且没有加载,加载图片 loadImg($(this))

    13.7K20

    JQuery之图片懒加载

    由于现在很多的网站都带有大量的图片,而图片的加载又会特别的慢,特别是在移动端,懒加载就显的特别重要了,说白了就是按需加载,用户要看到哪里就显示哪里,下面来记录一下懒加载的基本实现步骤!...1.引入jquery.js与jquery.lazyload.js,由于jquery.lazyload.js依赖于jquery,所以必须要引入jquery 加载效果、没有加载时显示的默认图片等等,可以简单的封装一个方法,方便去调用. function lazy(className) {   $(className).lazyload({...//图片在距离屏幕 200 像素时提前加载.     ...threshold: 200,     //将图片加载放进click事件中(不常用)     event:"click",       //加载隐藏的图片(不常用)     skip_invisible

    4.6K10

    第七节图片延迟加载

    图片延迟加载/图片懒加载的作用:保证页面打开的速度(3s之后如果首页打不开被称为死亡页面) 原理: 1>对于首屏内容中的图片:首先给对应的区域一张默认图片占着位置(默认图需要非常的小,一般可以维持在5kb...以内) 当首屏内容都加载完成后(或者也可以给一个延迟的时间),再开始加载真实的图片 2>对于其它屏中的图片:也是给一张默认的图片占位,当滚动条滚动到对应区域的时候,我们再开始加载真实的图片 网站性能优化的几种方式...: 尽量减少向服务器请求的次数(减少http请求) css/js文件进行合并 icon图片也进行合并--->雪碧图 图片的延迟加载 数据的异步加载 在移动端,如果我做的是一个简单的宣传页,尽量的把css...和js写好内嵌式 首屏延迟加载: 如果获取的图片地址是错误的当赋值给img的src属性的时候不仅控制台会报错,而且页面中会出现碎图或叉图,所以我们获取图片的地址之后要验证地址的有效性,是有效的才赋值...oimgFir.style.display = 'block'; oimg = null; }; }, 500); 其他屏单张图片延迟加载

    79510

    lazyload.js实现图片异步延迟加载

    所谓图片异步加载,意思是不用一次把图片全部加载完,你可以叫它延迟加载,缓冲加载都行。...看看你有没有这JavaScript 所谓图片异步加载,意思是不用一次把图片全部加载完,你可以叫它延迟加载,缓冲加载都行。...站点的页面载入速度; 不唐突的图片渐显方式; 代码精简,便于操作维护,JS代码仅仅 1.6KB 先决条件是:你的站加载了 Jquery.js 原理: 这个特效是少有的即华丽又加速的效果,因为它能判断访客是不是在查看当前图片...,若非则加载预留的填充图片 grey.gif ,等到访客滑动鼠标滑轮或浏览到图片位置时,真正的图片地址才会加载。...不用担心对访客的友好程度,这个效果会在图片即将被浏览到的时候就开始加载图片; 实现方法: 下载 jquery.lazyload.js      下载 预填充图片 fill.gif 点此打包下载

    12.8K20

    实现图片懒加载jquery.scrollLoading.js

    首先需要jquery.min.js插件,我用的是jQuery v2.1.3,大家可以去百度搜很多自己引入全局顶部即可,当然你的程序自带就不需要在引用JQ了。...第一步 找到你的全局顶部文件,上面已经说了如果你程序自带jq就忽略即可,大概就这样吧 第二步 找到你的底部文件,增加两段jspiex.gif为你要首次懒加载的图片,图片大家可以自己去找或者用我的 点击查看懒加载图片...实在不懂是哪个建议先进入到你的文章页按F12打开控制台看看加载了哪个js就扔进去 (function($) { $.fn.scrollLoading = function(options) {...在浏览器窗口内 if (tag === "a" || tag === "i") { //图片...loading(); //滚动执行 params.container.bind("scroll", loading); }; })(jQuery

    2.2K20

    mybatis 延迟加载(懒加载)

    本文链接:https://blog.csdn.net/weixin_44580977/article/details/96484510 1.为什么要延迟加载?...因为只有在用户需要的时候再去查询数据库,可以大大提高数据库性能 2.什么是延迟加载? 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。 3.延迟加载实现思路?...SQL语句: select * from account a left outer join user u on u.id = a.uid 延迟加载方式:如果先查询账户(Account)信息即可满足要...现在已经学会配置延迟加载了,明白什么是延迟加载了嘛?...不不明白,再看看下面的测试你可能就知道了, 什么是用到的时候去查数据库了,懒加载(延迟加载)的精髓 延迟加载效果 测试1 public class Account implements Serializable

    2.1K30
    领券