`
ivoter
  • 浏览: 91419 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jquery 图片预加载,先模糊后清晰

阅读更多

转载:http://www.neoease.com/lazy-load-jquery-plugin-delay-load-image/

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

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

 

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

怎样使用?

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

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

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

1
$("http://www.appelsiini.net/projects/lazyload/img").lazyload();

这将使 id="http://www.appelsiini.net/projects/lazyload/img" 区域下的图片将被延迟加载.

设置敏感度

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

1
$("http://www.appelsiini.net/projects/lazyload/img").lazyload({ threshold : 200 });

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

占位图片

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

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

事件触发加载

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

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

使用特效

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

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

图片在容器里面

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

CSS 代码:

1
2
3
4
#container {
height: 600px;
overflow: scroll;
}

JavaScript 代码:

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

当图片不顺序排列

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

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

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

延迟加载图片

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

1
2
3
4
5
6
7
8
9
$(function() {
$("img:below-the-fold").lazyload({
placeholder : "img/grey.gif",
event : "sporty"
});
});
$(window).bind("load", function() {
var timeout = setTimeout(function() {$("img").trigger("sporty")}, 5000);
});

下载插件

分享到:
评论

相关推荐

    几种jQuery动态图片加载效果.zip

    1. **基本图片预加载**:在图片实际显示之前,jQuery可以先进行预加载,避免用户看到空白或闪烁。这可以通过遍历图片数组,创建隐藏的img元素并设置其src属性来实现。 2. **延迟加载(Lazy Load)**:当用户滚动...

    html5页面滚动图片动画加载特效

    例如,可以监听滚动事件,当图片进入视口时启动动画,让图片从模糊到清晰,或者从底部渐入等。 为了实现这种特效,开发者通常会遵循以下步骤: 1. 使用JavaScript预加载图片,避免用户在滚动时等待图片加载。 2. ...

    js多种图片展示效果

    这种方式常用于预加载或者作为视觉引导。 4. **js图片覆盖层效果**:在图片上方添加半透明或带有其他元素的覆盖层,可以创建丰富的交互效果。例如,点击图片后,覆盖层展开显示更多信息,或者图片放大预览。这涉及...

    纯JavaScript智能缩放图片预览插件

    4. **图片加载**:在JavaScript中,可以使用`Image`对象预加载图片,一旦图片加载完成,可以触发回调函数,这时可以更新预览区域。 5. **图像缩放算法**:插件的核心在于智能缩放,这需要合适的算法来保持图像比例...

    jquery放大镜效果 轻松实现

    这里的参数如`zoomType`定义了放大镜类型(内部放大或外部放大),`lensSize`指定了放大镜视窗的大小,`preloadImages`则控制是否预加载高分辨率图片。 4. **事件监听**:jQuery插件会自动监听鼠标移动事件,根据...

    artzoom插件

    此外,还可以根据网站需求选择是否开启大图预加载功能。 8. **文件组成**:artzoom插件主要包含以下几个文件: - `artZoom.css`:这是样式表文件,包含了插件的样式规则,用于控制图片放大效果及界面布局。 - `...

    下拉列表模糊搜索

    可以采用缓存策略、预加载数据或使用高效的算法(如Trie树、Levenshtein距离等)来提高搜索速度。 2. 用户反馈:清晰地显示搜索状态,如正在搜索、无结果或搜索错误,让用户知道系统正在响应其操作。 3. 键盘导航...

    JavaScript_10款让你震撼的图片展示效果

    例如,Lightbox或Fancybox插件可以轻松实现这种效果,包括图片预加载、缩略图导航等功能。 以上这些JavaScript实现的图片展示效果,不仅提升了网页的视觉效果,也增加了用户与网页的互动性。开发者可以根据实际需求...

    图片放大镜特效集合.rar

    文件名称列表中只有一个"图片放大镜特效集合",这可能意味着压缩包包含不同实现方式的代码文件,如独立的JavaScript文件、CSS文件或预编译后的资源。理解这些文件的组织结构有助于开发者快速集成和自定义特效。 8....

    多级下拉导航 多级下拉导航

    4. 预加载:对于大容量的子菜单,可以考虑预加载一部分内容,以减少等待时间。 5. 锚点链接:对于深度嵌套的菜单,可以考虑使用锚点链接直接跳转至页面内相应位置,提高导航效率。 四、响应式设计 随着移动设备的...

    页面载入缓冲效果,页面缓冲特效

    - **预加载(Preloading)**:提前加载用户可能会访问的资源,减少等待时间。 - **服务端渲染(Server-Side Rendering, SSR)**:在服务器端完成页面的初步渲染,减少客户端的计算负担和首屏加载时间。 - **代码分割...

    图文按钮的源代码资源

    - **懒加载**:对于大图标的按钮,可以使用懒加载技术,只在需要时加载图片。 - **响应式设计**:按钮大小应根据屏幕尺寸自动调整,保证在不同设备上的可用性。 6. 最佳实践: - **清晰指示**:避免使用模糊或...

    大图背景响应式运动健身官网模板下载4985.zip

    8. **响应式图片和视频**:除了布局外,图片和视频也需要响应式处理,以确保在不同设备上加载快速且不模糊。例如,可以使用srcset和sizes属性来提供不同分辨率的图片,或使用HTML5的标签配合不同的source元素来适应...

    倾力总结40条常见的移动端Web页面问题解决方案

    2. **图片加载速度慢**:若遇到图片加载慢的问题,可以考虑使用Canvas进行图片预加载。Canvas API允许动态加载图片并在画布上绘制,提高加载速度。例如: ```javascript var total = 17; var zWin = $(window); ...

    day43-Feedback Ui Design(反馈ui设计)

    2. **明确性**:反馈信息应清晰明了,避免使用模糊的语言。 3. **一致性**:全应用的反馈风格应保持一致,以减少用户的学习成本。 4. **辅助性**:对于复杂操作,提供指导性反馈,帮助用户完成任务。 5. **人性化**...

    城市输入首字母提示框

    - **模糊匹配(Fuzzy Matching)**:考虑到用户可能输入不完全或有误的首字母,系统需要支持模糊匹配,即允许一定程度的字符差异,但仍能提供相关的建议。 - **性能优化**:由于城市数量众多,为了保证用户输入时...

    代有输入的下拉框用户控件

    - **模糊搜索(Fuzzy Search)**:允许用户输入部分关键字就能找到匹配项。 - **多选(Multiselect)**:在某些场景下,用户可能需要同时选择多个选项。 - **禁用和可见性控制**:根据需求,可以禁用控件或者隐藏...

    大气黑色IT互联网科技公司单页模板_大气 黑色 互联网 科技 单页 bootstrap 响应式 手机 蓝色 背景 项目.rar

    这种设计方法依赖于媒体查询(Media Queries)和流式布局(Fluid Grids),确保内容在任何屏幕尺寸下都能清晰、有序地呈现。 2. **Bootstrap框架**:Bootstrap是一个流行的开源前端开发框架,它提供了CSS预处理器...

Global site tag (gtag.js) - Google Analytics