预加载显示图片的艺术

简介:

一般情况下网页中的图片都是随文档流依次加载的,什么时候用到则什么时候加载,但是有些时候这样的加载方式往往会影响用户体验,比如鼠标hover变换背景图片的时候,只有鼠标移入才会对变换的图片进行加载,这样就可能会出现片刻的加载空白现象;又比如图片显示后隐藏再显示网站内容等也是同样的道理。

为了在必要的时候增加用户体验,提高网页的交互逼格,这里不得不介绍下图片预加载的艺术啦。

那么什么是图片预加载呢?

道理很简单啦,虽然某些图片一时半会我用不到,但是为了避免使用时出现的措手不及的现象,我还是乖乖把它们先准备好,在某些时候悄悄的把它们加载进来,以防一时之需。

ok,那么怎么才能实现这样的功能呢?

其实很简单啦,

这里呢就介绍一个jquery库的preLoadImages()函数,使用这个函数呢就可以轻松实现图片预加载了,下面来一睹为快吧,代码如下:

复制代码
复制代码
 1 $(function(){
 2     var cache=[];
 3     //编写一个预加载图片的jQuery函数
 4     $.preLoadImages = function(){
 5         //获取函数体的参数个数
 6         var args_len = arguments.length;
 7         //反向循环参数个数,创建img元素
 8         for(var i = args_len ; i--;) {
 9             var cacheImage = document.createElement(‘img’);
10             //指定img元素的src属性为数组元素的值
11             cacheImge.src = arguments[i];
12             //将HTML元素加入到数组中
13             cache.push(cacheImage);
14         }    
15     }    
16 });
复制代码
复制代码

ok,注释都写的十分清楚了吧,还是没看懂?好吧那么我们先不管代码了,其实只要通过下面一步就可以完成函数的调用,如下:

1 //预加载图片
2 $.preLoadImages('images/sample1.jpg’,’images/sample2.jpg’,'images/sample3.jpg’);

其中的

'images/sample1.jpg’,’images/sample2.jpg’,'images/sample3.jpg’

就是图片的路径,预加载多张图片就用逗号分隔啦,

这样在网页上的任何位置引用图片时,将从缓存中获取所需的图片,从而提升用户的体验,使网站获得更好的流畅性哦。

那么还没完,有人可能会问万一图片路径失效加载出错了咋办?

呵呵,再教你一招,出错就出错了呗,我们有plan B,针对出错的图片显示另一张我们事先准备好的图片,用这张图片来替换所有无法显示的图片,那么怎样才能做到呢,方法也十分简单,代码如下:

1 $(function(){
2     $("img").error(function(){
3         $(this).prop("src","images/planB.jpg");
4     });
5 });

搞定,这下我们做的万无一失了,

这里主要介绍下error()事件,它的定义和用法为:

  当元素遇到错误(没有正确载入)时,发生 error 事件。

  error() 方法触发 error 事件,或规定当发生 error 事件时运行的函数。

很好理解吧,至此我们的图片预加载的方法就介绍完了。

 

本文部分代码及写作思路参考于《超实用的JQuery代码段》一书,欢迎大家积极尝试、评论及指正。

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/4720102.html ,如需转载请自行联系原作者
相关文章
|
6月前
|
前端开发 JavaScript
无缝滚动图片——源码
无缝滚动图片——源码
|
6天前
|
6月前
|
JavaScript 前端开发
jquery酷炫的马赛克图片还原动画代码
jquery酷炫的马赛克图片还原动画代码,jquery马赛克图片动画,js酷炫图片代码,马赛克图片js还原效果,js图片分散汇聚效果素材
110 1
|
6月前
好看的网站自适应图片文字广告位代码
上边是图片广告位,下边是文字广告位,都是自适应的。 图片觉得不直观的可以去网站看看 代码从网上扒的,自己也修改了一下,更美观、也更适应网站。 一个好的广告位不仅不会拉低网站的颜值,还会增加广告主选择你的机会
173 2
好看的网站自适应图片文字广告位代码
|
小程序 UED
微信小程序轮播图image控件图片mode属性自适应及解决图片加载闪烁bug
微信小程序轮播图image控件图片mode属性自适应及解决图片加载闪烁bug
404 0
|
JavaScript 前端开发 CDN
图片预加载
图片预加载
96 0
|
JSON 前端开发 Android开发
Lottie 动画里有图片?有动画效果但图片加载不出来?
Lottie 动画里有图片?有动画效果但图片加载不出来?
1906 0
|
计算机视觉
【图片操作】生成动态图片
动态图片我们使用的还是比较频繁的,平时的表情包有很多动图。今天我们要做的就是自己制作动态图片,其实就是将视频转换成动图,操作起来非常简单。下面我们就来看看如何实现吧。
578 0