页面分享地址:

http://wenku.baidu.com/link?url=_-G8miwbgDmEj6miyFtjit1duJggBCJmFjR2jky_G1VftD9eS9kwGOlFWAORk2_fotM4RbzRvtcaiQu2y_BU3Gpj0rYRy_EWrgXEuFeja0q

页面分享地址:http://www.jb51.net/article/21987.htm

Javascript

Jquery

实现页面图片预加载百分比展现

如果需要在页面初始加载时显示加载进度。主要是指图片很多的情况下:

可以使用第三方

Jquery

插件

 

jquery.imgpreload.min.js

调用里面的方法:

imgpreload

即可,实例如下:

varimgNum = 0;

var images = [];

$(function(){ preloadImg(); });

//

里面有两种方式

functionpreLoadImg() {

//

第一种方式:通过

dom

方法获取页面中的所有

img

,包括

<img>

标签和

css

中的

background-image

/*get all imgs those tag is <img>

varimgs = document.images;

for (vari = 0; i<imgs.length; i++) {

images.push(imgs[i].src);

}

//get all images in style

varcssImages = getallBgimages();

for (var j = 0; j <cssImages.length; j++) {

images.push(cssImages[j]);

}*/

//

第二种方式:把所有该网页上用到的图片文件都预先放入一个数组里

$.imgpreload(['images/bg1.jpg', 'images/bg2.jpg'], function () {

//

此处是显示进度百分比时需要用到的背景图,这个可以先加载进去

});

//then push all other images in array to load

images.push("images/test_1.png");

images.push("images/test_2.png");

images.push("images/test_3.png");

//

。。。

images.push("images/test_n.png");

/*

这里是真正的图片预加载

preload*/

$.imgpreload(images,

{

each: function () {

/*this will be called after each image loaded*/

var status = $(this).data('loaded') ? 'success' : 'error';

if (status == "success") {

var v = (parseFloat(++imgNum) / images.length).toFixed(2);

$("#percentShow").html(Math.round(v * 100) +

"<sup>%</sup>");

}

},

all: function () {

/*this will be called after all images loaded*/

$("#percentShow ").html("100<sup>%</sup>");

$("percentShow").fadeOut(1000);

$(".main").show();

}

});

}

//get all images in style

(此方法引用其他博客的)

functiongetallBgimages() {

varurl, B = [], A = document.getElementsByTagName('*');

A = B.slice.call(A, 0, A.length);

while (A.length) {

url = document.deepCss(A.shift(), 'background-image');

if (url) url = /url\(['"]?([^")]+)/.exec(url) || [];

url = url[1];

if (url&&B.indexOf(url) == -1) B[B.length] = url;

}

return B;

}

document.deepCss = function (who, css) {

if (!who || !who.style) return '';

var sty = css.replace(/\-([a-z])/g, function (a, b) {

returnb.toUpperCase();

});

if (who.currentStyle) {

returnwho.style[sty] || who.currentStyle[sty] || '';

}

var dv = document.defaultView || window;

returnwho.style[sty] ||

dv.getComputedStyle(who, "").getPropertyValue(css) || '';

}

Array.prototype.indexOf = Array.prototype.indexOf ||

function (what, index) {

index = index || 0;

var L = this.length;

while (index < L) {

if (this[index] === what) return index;

++index;

}

return -1;

}

这样就能在页面图片很多,且网速很慢的情况下给予用户一个百分比提示。

在做这个之前,由于每次本地测试加载都很快,

百分比瞬间到

100%

然后消失,

为了看上去

有那么一回事,我还写了一个伪百分比进度条,仅供玩耍:

var t = window.setTimeout("preLoad()", 100);

functionpreLoad() {

$("#loading div").animate({ width: step + "px" }, 50).text(step + "%");

step += 1;

if (step <= 100) {

t = window.setTimeout("preLoad()", 100);

} else {

clearTimeout(t);

$("#loading").fadeOut(1000);

$("#preloadImg").fadeOut(1000);

$(".main").show();

}

(

这是一个页面初始化完成之后,在页面上有一个模拟百分比不断增长的过程,到

100%

消失进度条,

显示主页面,

不过跟实际页面加载没任何关系,

可以忽悠不懂且有想要此功能

的人,哈哈

)

jquery.imgpreload.min.js插件实现页面图片预加载的更多相关文章

  1. js 函数的多图片预加载(preload) 带插件版完整解析

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS实现图片预加载效果 本篇文章写的 ...

  2. 通过jquery.transit.min.js插件,实现图片的移动

    首先给出插件:jquery.transit.min.js (function(t,e){if(typeof define==="function"&&define. ...

  3. JS代理模式实现图片预加载

    ---恢复内容开始--- 刚刚说了懒加载,现在我们来搞搞预加载吧 预加载的核心: 图片等静态资源在使用前提前请求. 资源后续使用可以直接从缓存中加载,提升用户体验. 几个误区: 预加载不是为了减少页面 ...

  4. 图片预加载的插件使用-jquery.imgpreload.min.js

    使用方法: //图片预加载 var the_images = [];//新建一个数组,然后将要加载的图片地址推入这个数组中: the_images.push( 'bg.jpg' ); var load ...

  5. 图片预加载插件 preLoad.js

    1.preLoad.js插件 /*! * preLoad.js v1.0 * (c) 2017 Meng Fangui * Released under the MIT License. */ (fu ...

  6. jquery实现图片预加载提高页面加载速度

    使用jquery实现图片预加载提高页面加载速度和用户体 我们在做网站的时候经常会遇到这样的问题:一个页面有大量的图片导致页面加载速度缓慢,经常会出现一个白页用户体验很不好.那么如何解决这个问题 呢?首 ...

  7. 闭包,jQuery插件的写法:图片预加载

    最近做的一些网页,单个网页图片量都比较大,网络不好的情况下,特别卡,这个图片预加载的方法可以牺牲一些时间换来网页的浏览顺畅,还是值得的. //闭包的写法,它内部的变量都是局部的,不会和外部巳有的变量进 ...

  8. 【JQuery Zepto插件】图片预加载

    屏幕滚动到图片当前位置加载图片,把图片的真实地址写到data-src属性里即可. <img src="占位图" data-src="img/foot.jpg&quo ...

  9. 利用简洁的图片预加载组件提升h5移动页面的用户体验

    在做h5移动页面,相信大家一定碰到过页面已经打开,但是里面的图片还未加载出来的情况,这种问题虽然不影响页面的功能,但是不利于用户体验.抛开网速的原因,解决这个问题有多方面的思路:最基本的,要从http ...

随机推荐

  1. UVaLive6443(线段树)

    要点 题意--题意往往是个大坎Orz:输入操作 p 则在区间\([x_1,x_2]\)插入一个三次函数, t 则先查询区间\([x_1,x_2]\)的函数值的和,然后按题目要求得到新的\(x_1\). ...

  2. POJ3178 计算几何+DP

    //一些点一些圆,过圆不能连线,相邻点不能连线,问最多连几条线 //计算几何模板+区间dp //关键是判断圆和线段是否相交 #include <cstdio> #include <c ...

  3. 我所接触到的JWT

    名称:JWT--->Json Web Token 用途:客户端请求服务端API时的认证方式之一 用法: 优点: 体积小(一串字符串),因而传输速度快 支持跨域验证,多应用于单点登录 传输方式多样 ...

  4. tomcat7 fail to start inside Ubuntu Docker container

    The tomcat startup script needs some special privileges. Concrete it needs to check all running proc ...

  5. JS中比较的数值如何比较大小

    <script type="text/javascript"> function check_num(){ var num=document.getElementByI ...

  6. Java浏览器下载文件为excel(springMVC方式)

    action中的方法 /** * Excel文件下载处理 * @return */ @RequestMapping("/downloanExcel") public ModelAn ...

  7. 用TextWriterTraceListener实现建议log文件记录

    log4net之类3方组件确实很方便,但是想写个小小的demo之类的程序,有点用不起啊. 微软自带的TraceListener要实现一个简易的日志帮助类还是很简单的,直接上代码,自己备用,也希望对同样 ...

  8. CSS3学习-用CSS制作立体导航栏

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. linux系统基本结构-《循序渐进linux》

    1.linux控制台 linux系统由桌面控制台(X -Window视窗)和字符控制台组成.字符控制台是linux的核心,默认linux下有6个字符控制台. 字符控制台--〉X-Window下:ctr ...

  10. <Android 应用 之路> 天气预报(一)

    Android天气预报客户端 设计思路 欢迎界面,版本号,应用名 + 数据后台加载(所有城市的信息获取) 数据加载完成后跳转到显示界面,显示所有查询到的城市的天气信息 欢迎界面和天气显示界面分别为单独 ...