`
天梯梦
  • 浏览: 13730864 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

延迟加载图片 Lazy Load

阅读更多

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加 载长页面中的图片 . 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的.

在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担.

 

Lazy Load 灵感来自 Matt Mlinac 制作的 YUI ImageLoader 工具箱. 这是演示页面 .

 

怎样使用?

Lazy Load 依赖于 jQuery . 请将下列代码加入页面 head 区域:

 

<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.lazyload.js" type="text/javascript"></script>
 

并且在你的执行代码中加入下面语句:

 

$("#img img").lazyload();

 

这将使 id="img" 区域下的图片将被延迟加载.

 

设置敏感度

插件提供了 threshold 选项, 可以通过设置临界值 (触发加载处到图片的距离) 来控制图片的加载. 默认值为 0 (到达图片边界的时候加载).

 

$("img").lazyload({ threshold : 200 });
 

将临界值定为 200, 当可视区域离图片还有 200 个象素的时候开始加载图片. (这一句原文的字面意思和本人理解不一致, 原文: Setting threshold to 200 causes image to load 200 pixels before it is visible.)

 

占位图片

你还可以设定一个占位图片并定义事件来触发加载动作. 这时需要为占位图片设定一个 URL 地址. 透明, 灰色和白色的 1x1 象素的图片已经包含在插件里面.

 

$("img").lazyload({ placeholder : "img/grey.gif" });
 

事件触发加载

事件可以是任何 jQuery 事件, 如: clickmouseover . 你还可以使用自定义的事件, 如: sportyfoobar . 默认情况下处于等待状态, 直到用户滚动到窗口上图片所在位置. 在灰色占位图片被点击之前阻止加载图片, 你可以这样做:

 

$("img").lazyload({
	placeholder : "img/grey.gif",
	event : "click"
});
 

使用特效

当图片完全加载的时候, 插件默认地使用 show() 方法来将图显示出来. 其实你可以使用任何你想用的特效来处理. 下面的代码使用 FadeIn 效果. 这是演 示页面 .

 

$("img").lazyload({ 
	placeholder : "img/grey.gif",
	effect : "fadeIn" 
});
 

图片在容器里面

你可以将插件用在可滚动容器的图片上, 例如带滚动条的 DIV 元素. 你要做的只是将容器定义为 jQuery 对象并作为参数传到初始化方法里面. 这是水 平滚动演示页面垂 直滚动的演示页面 .

 

CSS 代码:

 

#container {
	height: 600px;
	overflow: scroll;
}

 

JavaScript 代码:

 

$("img").lazyload({
	 placeholder : "img/grey.gif",
	 container: $("#container")
});
 

当图片不顺序排列

滚动页面的时候, Lazy Load 会循环为加载的图片. 在循环中检测图片是否在可视区域内. 默认情况下在找到第一张不在可见区域的图片时停止循环. 图片被认为是流式分布的, 图片在页面中的次序和 HTML 代码中次序相同. 但是在一些布局中, 这样的假设是不成立的. 不过你可以通过 failurelimit 选项来控制加载行为.

 

$("img").lazyload({ 
	failurelimit : 10
});
 

failurelimit 设为 10 令插件找到 10 个不在可见区域的图片是才停止搜索. 如果你有一个猥琐的布局, 请把这个参数设高一点.

延迟加载图片

Lazy Load 插件的一个不完整的功能, 但是这也能用来实现图片的延迟加载. 下面的代码实现了页面加载完成后再加载. 页面加载完成 5 秒后, 指定区域内的图片会自动进行加载. 这是延 迟加载演示页面 .

 

 

$(function() {
	$("img:below-the-fold").lazyload({
		placeholder : "img/grey.gif", 
		event : "sporty" 
	});
});
$(window).bind("load", function() { 
	var timeout = setTimeout(function() {$("img").trigger("sporty")}, 5000);
});
 

 

下载插件

最新版本: 源代码 , 压缩的代码 , 打包的代码

已知问题

由于 webkit 的 bug #6656 , Lazy Load 在 Safari 和 Chrome 中无法使用. 它会立即为你加载所有你愿意和不愿意被载入的图片.

貌似 jQuery 1.3.x 令插件在 IE 中失效了. 所有图片将在后台被加载即使它们不应该被加载. 作者正在为解决这个问题而努力, 在此期间只能停留在 jQuery 1.2.6 中使用该插件.

还有, 如果你使用 Mint , 请将 mint 标签加在页面头部, 如果把 mint 标签加到页面结尾会干扰到 Lazy Load 插件. 这是一个相当罕见的问题, 如果有人找到解决办法请联系作者.

 

 

 

链接主题:

预加载图片

javascript图片浏览器的核心——图片预加载

jQuery 页面载入进度条 (必有一款适合你----综合搜集版)

 

 

分享到:
评论

相关推荐

    图片延迟加载,lazyload.js使用实例

    `lazyload.js` 是一个实现图片延迟加载的JavaScript库,它的特点是轻量级且易于使用,没有多余的代码,使得开发者能够快速地集成到项目中。在本文中,我们将深入探讨`lazyload.js`的工作原理、使用方法以及如何在...

    图片延迟加载 lazyload

    jQuery.lazyload 是一个非常流行的 jQuery 插件,专门用于实现图片延迟加载功能。这个插件通过监听滚动事件来判断图片是否进入视口,一旦发现图片进入可视区域,它就会替换占位符,加载真实的图片资源。jQuery.lazy...

    网页内容延迟加载LazyLoad

    网页内容延迟加载(LazyLoad)是一种优化网页性能的技术,它主要应用于图片、视频或大量文本内容的加载。这种技术的核心思想是,只加载用户当前视口内的内容,当用户滚动页面,即将进入视口的内容才会被加载。这样...

    jQuery图片延迟加载插件Lazy Load.zip

    jQuery图片延迟加载插件Lazy Load是一种高效的前端技术,旨在优化网页性能,特别是在包含大量图片的网页上。在当今互联网环境中,用户体验是至关重要的,而快速的页面加载速度是提升用户体验的关键因素之一。Lazy ...

    懒加载LazyLoad延时加载图片效果特效.rar

    标题"懒加载LazyLoad延时加载图片效果特效.rar"表明这是一个关于使用懒加载技术实现图片延迟加载,并带有特效的实例。.rar文件通常包含压缩的资源,如HTML文件(LazyLoad.htm)和JavaScript文件(CJL.0.1.min.js),...

    动态加载的图片LazyLoad

    2. **事件监听**:可能由于JQuery.LazyLoad监听滚动事件的方式与浏览器的滚动机制不完全兼容,导致图片未能在正确的时间点加载。 3. **CSS和布局问题**:页面的CSS样式或布局设置可能会影响元素的可见性判断,使得...

    lazyload异步加载图片

    本文将围绕"lazyload异步加载图片"这一主题,深入探讨其原理、实现方式以及实际应用中的注意事项。 ### 1. 基本原理 懒加载的核心思想是延迟加载,即不一次性加载所有图片,而是当图片进入用户的可视区域时才进行...

    JQuery LazyLoad 图片懒加载实例

    **jQuery LazyLoad 图片懒加载实例** 在网页设计中,图片加载...以上就是关于jQuery LazyLoad图片懒加载实例的详细说明。通过实践,你可以轻松地将这种高效的技术应用到自己的项目中,提升网页的加载速度和用户体验。

    jquery.lazyload图片预加载效果 jquery预加载

    《jQuery LazyLoad 图片预加载技术详解》 在网页设计中,图片的加载速度往往直接影响着用户体验。当页面中包含大量图片时,如果一次性全部加载,可能会导致页面加载时间过长,用户需要等待,这无疑降低了网站的可用...

    懒加载案例lazyload

    在这个"懒加载案例-lazyload"中,我们可以深入探讨以下几个关键知识点: 1. **懒加载原理**: - **可见性检测**:懒加载的核心在于判断元素是否在用户的视口范围内。这通常通过计算元素距离浏览器窗口的距离和用户...

    lazyload延迟加载

    Lazyload是通过延迟加载来实现按需加载,达到节省资源,加快浏览速度的目的。 网上也有不少类似的效果,这个Lazyload主要特点是: 支持使用window(窗口)或元素作为容器对象; 对静态(位置大小不变)元素做了大量...

    懒加载lazyload

    通常,我们将 jQuery 放在 `&lt;head&gt;` 标签内,而将 `jquery.lazyload.js` 放在所有图片元素之后,这样可以确保在处理图片之前,jQuery 已经加载完毕: ```html &lt;!DOCTYPE html&gt; 懒加载示例 ...

    jquery.lazyload 实现图片延迟加载

    **jQuery LazyLoad 插件详解:实现图片延迟加载** 在网页设计中,为了提升用户体验,减少页面初次加载的时间,一种常见的优化策略是采用图片延迟加载(Image Lazy Load)技术。`jQuery LazyLoad` 是一个非常实用的 ...

    JQuery Lazyload加载图片实例

    为了解决这一问题,jQuery 提供了一个插件——jQuery Lazyload,它允许我们实现图片的延迟加载(也称为懒加载),即图片只在用户滚动到可视区域时才开始加载。这种方式可以显著提升网页的加载速度,特别是对于拥有...

    图片延迟加载特效,jquery.lazyload.js

    你必须修改 HTML 代码. 在 src 属性中设置展位符图片, demo 页面使用 1x1 像素灰色 GIF 图片.... 这里可以定义特定的 class 以获得需要延迟加载的图片对象. 通过这种方法你可以简单地控制插件绑定.

    jquery lazyload延时加载

    jQuery LazyLoad 实现了图片的延时加载(也称为懒加载),即只有当图片进入用户可视区域时,才会开始加载,这样可以显著减少页面初次加载时的流量,并提高页面加载速度。 **一、jQuery LazyLoad 基本原理** 1. **...

    js lazyload实现网页图片延迟加载特效

    在网页设计中,为了提高页面加载速度和优化用户体验,一种常见的技术是图片延迟加载,也称为懒加载(Lazy Load)。JavaScript 是实现这一功能的主要工具,它允许我们在用户滚动到图片时才加载图片,而不是一次性加载...

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

    `lazyload.js`是一个轻量级、高性能的JavaScript库,专门用于实现图片和其他元素的延迟加载。它具有以下特点: - **简单易用**:只需几行代码即可集成到项目中。 - **兼容性好**:支持所有现代浏览器,包括IE9及...

    JQuery 图片延迟加载 lazyload

    JQuery 图片延迟加载 lazyload

    js lazyLoad 图片懒加载demo

    描述中提到的"应用lazyload.js 插件实现图片懒加载",意味着这个项目的核心是通过`lazyload.js`来处理网页上的图片加载。在网页加载时,非首屏的图片不会立即下载,而是等待用户滚动到图片所在位置时才开始加载。...

Global site tag (gtag.js) - Google Analytics