基于jQuery或Zepto的图片延迟加载插件
创始人
2024-03-28 02:07:00
0

当我们网站的页面图片过多时,加载速度就会很慢。尤其是用手机2G/3G访问页面,不仅页面慢,而且还会用掉很多流量。我们主题之前也都采用了图片的懒加载形式,但都不完美,部分主题还采用了占位图片来控制懒加载,今天换一种js图片懒加载,它原理就是将页面内所有需要加载的图片全部换成一张默认的图片(一般尺寸很小),只有图片在可视区域才去请求加载,这样的话应该就能满足我们日常所需,好了不说废话先按照教程操作试试,后期主题会逐一更新,稍安勿躁!!!

 

实现原理

页面打开时首先会加载src里的图片,即很小的加载图;通过监听scroll事件,当图片在可视区域时,使用data-src替换src,加载真正的图片。

使用

实际使用时一般使用已经存在的插件,如lazyload插件。

lazyload插件网上能搜出很多,常见的是: 1、jquery.lazyload.js: 依赖jQuery

JavaScript

/*!* Lazy Load - jQuery plugin for lazy loading images ** Copyright (c) 2007-2015 Mika Tuupola* * Licensed under the MIT license: *   http://www.opensource.org/licenses/mit-license.php ** Project home:*   http://www.appelsiini.net/projects/lazyload ** Version:  1.9.7**/

http://www.appelsiini.net/projects/lazyload

2、lazyload.js: 依赖jQuery或者Zepto

JavaScript

/*!* An jQuery | zepto plugin for lazy loading images. * author -> jieyou * see https://github.com/jieyou/lazyload* use some tuupola's code https://github.com/tuupola/jquery_lazyload (BSD)* use component's throttle https://github.com/component/throttle (MIT)*/

下载:https://github.com/52fhy/lazyload

以上二者用法是一样的,第二个基于第一个修改,以支持zepto。现在以第二个示例:

lazyload.js

1、引入

Markup

2、使用

Markup


$(".lazy").lazyload();

3、配置

缺省:

JavaScript

defaultOptions = { threshold : 0, //图像提前多少加载,单位px failure_limit : 0, event : 'scroll', //触发事件 effect : 'show', //效果 effect_params : null, //effect的参数数组 container : w, //使用容器,默认是window data_attribute : 'original', //可以改成src,即对应data-src属性 data_srcset_attribute : 'original-srcset', skip_invisible : true, appear : emptyFn, load : emptyFn, vertical_only : false, //竖直方向滚动的页面中使用 check_appear_throttle_time : 300, url_rewriter_fn : emptyFn, no_fake_img_loader : false, placeholder_data_img : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC', // for IE6\7 that does not support data image placeholder_real_img : 'http://ditu.baidu.cn/yyfm/lazyload/0.0.1/img/placeholder.png' // todo : 将某些属性用global来配置,而不是每次在$(selector).lazyload({})内配置}YAML复制全屏 }

示例:

JavaScript

$(function() {$(".lazy").lazyload({         effect : "fadeIn",//效果data_attribute : 'src',//可以改成src,即对应data-src属性event: 'scroll',//默认值container: $(".content"), //一般无需指定,即window。sui框架里必须指定});
});

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...