链接主题:

预加载图片

延迟加载图片 Lazy Load

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

第一种方法:

页面 Loading 条基本人人都会用。它的原理很简单:在页头放置一个文字或者图片的 loading 状态,然后页尾载入一段 JS 隐藏掉,即根据浏览器的载入顺序来实现的简易 Loading 状态条。

loading Process traditional

上图展示了传统 Wordpress 模板在浏览器中的载入顺序,Loading 条的出现和消失分布于头尾。

new loading bar

如果我们在页面的不同位置放置多个 JS ,每个 JS 用于逐步增加 Loading 条的宽度,那么这个 Loading 条无疑会更具实用价值。它在一定程度上缓解了访客等待载入的枯燥感,同时还能客观反映页面载入的进度。若再配以 jQuery 内建的动画效果,其完全可以与浏览器自带的状态条媲美。

先来看一个演示:地址

要得到演示上的进度条效果,首先 ,引入 jQuery 框架(一定要放在页头 <head> 标签内)。然后在 <body> 标签起始位置放置:

<div id="loading"><div></div></div>

CSS 可以这么写:

#loading {
width:100px;
height:20px;
background:#A0DB0E;
padding:5px;
position:fixed;
left:0;
top:0;
}
#loading div {
width:1px;
height:20px;
background:#F1FF4D;
}

准备工作到这里就做好了。

接着 ,请随意发挥,依照你对图二的理解,在模板各个部分的适当位置放置:

<script type="text/javascript">
$("#loading div").animate({width:"16px "})
</script>

其中红色数值应该随载入顺序逐步增加,直到 footer.php。另外别忘了在 footer.php 最末尾放上:

<script type="text/javascript">
$("#loading").fadeOut()
</script>

用于载入完毕后隐藏进度条。


第二种

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Loading Status Bar</title>
<meta name="robots" content="noindex,follow" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">document.writeln("<style type=\"text\/css\">#loading{width:100px;height:20px;background:#A0DB0E;padding:5px;position:fixed;left:0;top:0}#loading div{width:1px;height:20px;background:#F1FF4D;font:10px/20px Arial}<\/style>");
</script><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
<noscript>您的浏览器不支持 Javascript</noscript><div id="loading"><div></div>
</div><? for($i=0;$i<100000;$i++){ echo $i;} ?><script type="text/javascript">$("#loading div").animate({width:"16px"}).text("16%")</script>
<? echo '<br><br><br>'; for($i=0;$i<100000;$i++){ echo $i;} ?><script type="text/javascript">setTimeout(function(){$("#loading div").animate({width:"34px"}).text("34%")},500)</script>
<script type="text/javascript">setTimeout(function(){$("#loading div").animate({width:"67px"}).text("67%")},1000)</script>
<script type="text/javascript">setTimeout(function(){$("#loading div").animate({width:"82px"}).text("82%")},1500)</script>
<script type="text/javascript">setTimeout(function(){$("#loading div").animate({width:"100px"}).text("100%")},2000)</script>
<script type="text/javascript">setTimeout(function(){$("#loading").hide(500)},3000)</script></body>
</html>

第三种 导向型

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Loading</title>
<style type="text/css">
.proccess{border:1px solid;width:8px;height:8px;background:#ffffff;margin:3px;
}
</style><script language="JavaScript">var url = 'http://deographics.com/';
</script></head><body  onLoad="location.href = url;" style='overflow:hidden; overflow-y:hidden'><div align=center><font class=fontbig>友情提示,页面正在加载中,请等待......</font><div align="center"><form method="post" name="proccess"><script type="text/javascript"> for(i=0;i<30;i++){document.write("<input class=proccess>");}</script></form></div><div align="center"><script language=JavaScript>var p=0,j=0;var c=new Array('lightskyblue','white')setInterval('proccess();',100)function proccess(){document.forms.proccess.elements[p].style.background=c[j]; p+=1;if(p==30){ p=0;j=1-j; }}</script></div></div><div align="center"><script>if (document.layers){document.write('<Layer src="' + url + ' " visibility="hide"> </Layer>');}else if (document.all || document.getElementById){document.write('<iframe src="' + url + '" style="visibility: hidden;"></iframe>');}else{location.href = url;}</script></div>
</body>
</html>
 
第四种 iframe loading
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Iframe Loading</title>
</head><body>   <div id="load"><img src="http://sysimages.tq.cn/images/analysis_images/ajax-loader.gif" />&nbsp;loading...</div><iframe style="visibility:hidden" onreadystatechange="stateChangeIE(this)" οnlοad="stateChangeFirefox(this)" name="callframe" id="callframe" width="420" height="100" frameborder="0" scrolling="no" marginheight="0"></iframe><script>   function stateChangeIE(_frame){if (_frame.readyState=="interactive"){ //state: loading ,interactive, completevar loader = document.getElementById("load");loader.innerHTML  = "";loader.style.display = "none";  _frame.style.visibility = "visible";   }   }function stateChangeFirefox(_frame){var loader = document.getElementById("load");loader.innerHTML  = "";loader.style.display = "none";  _frame.style.visibility = "visible";   }callframe.location.href="http://deographics.com/";</script>
</body>
</html>
解释:
0: (Uninitialized) the send( ) method has not yet been invoked.
1: (Loading) the send( ) method has been invoked, request in progress.
2: (Loaded) the send( ) method has completed, entire response received.
3: (Interactive) the response is being parsed.
4: (Completed) the response has been parsed, is ready for harvesting.

0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

第五种 加载图片
<html>
<head>
<title>JavaScript图片预加载代码,显示loading</title><style type="text/css">div{border:#aaaaaa 3px solid;width:200px;padding:2px;margin:2px 9px;font-size:12px;line-height:22px;color:#999999;}.ipt1{width:160px;font-size:12px;color:#1F6478;border:#999999 1px solid;margin-left:9px;}.ipt2{border:#999999 1px solid;margin-left:6px;color:#666666;}p{margin:0px;padding:0px;background-image:url(http://www.codefans.net/jscss/demoimg/loading.gif);background-position:center;background-repeat:no-repeat;width:200px;height:200px;text-align:center;font-size:12px;color:#999999;line-height:26px;}
</style><script language="javascript" type="text/javascript">function preloadimg(url,obj,ipt){var img = new Image();obj.innerHTML = "<p>Loading...</p>";img.onload = function(){obj.innerHTML = "";obj.style.width = String(img.width)+"px";ipt.style.width = String(img.width-40)+"px";obj.appendChild(img);};img.onerror = function(){obj.innerHTML="Loading Fail !"};img.src = url; //img.src 一定要写在img.onload之后,否则在IE中会出现问题}function show(){var div = document.getElementsByTagName("div")[0];var input = document.getElementsByTagName("input");preloadimg("http://www.codefans.net/jscss/demoimg/wall9.jpg",div,input[0]);input[0].onclick = function(){this.value=""};input[1].onclick = function(){preloadimg(input[0].value,div,input[0]);}}window.onload = show;
</script></head><body>
<div></div><br />
<input type="text" value="将图片地址粘贴在这里" class="ipt1"/><input type="button" value="开始加载" class="ipt2"/>
</body>
</html>
或者使用
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="MinmyLazyload.js" type="text/javascript"></script>
<body>
<img original="http://justcoding.iteye.com/uploadfiles/20100424-2_20914.jpg">
<img original="http://justcoding.iteye.com/uploadfiles/20100423-1_85399.jpg">
<script type="text/javascript">$("img").lazyload({ placeholder: "img-loader.gif", effect:"fadeIn" });
</script>
</body> 
minimylazyload.js 在附件中找
第六种 本页
<style>#loading{font-size:12px;color:#FFFFFF;background:#FF0000;position:absolute;top:500px;left:500px; z-index:1002; padding:2px 10px 2px 10px}
</style><body><div id="loading">页面加载中…</div>..........<script type="text/javascript">document.write('<style>#loading{display:none;}</style>');</script>
</body>
</html>

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

  1. 页面载入进度条 nprogress的使用

    介绍 页面路由切换时,附带一个加载进度条会显得非常友好,不至于白屏时间过长,让用户以为页面假死. 这时候我们可以用到 nprogress[108],在路由切换时开启和关闭: 安装 npm npm in ...

  2. php进度条插件,分享8款优秀的 jQuery 加载动画和进度条插件_jquery

    加载动画和进度条在网站和 Web 应用中的使用非常流行.虽然网速越来越快,但是我们的网站越来越复杂,同时用户对网站的使用体验的要求也越来越高.在内容加载缓慢的时候,使用时尚的加载动画和进度条告诉用户还 ...

  3. 【Unity使用UGUI实现王者荣耀UI界面(一)】加载页面(进度条)

    文章目录 [Unity使用UGUI实现王者荣耀UI界面(一)]加载页面(进度条) 1. 素材准备 2. 界面分析 3. 打开Unity Hub创建项目 4. 开始搭建UI 1. 准备工作 2. 背景图 ...

  4. js网页顶部线性页面加载进度条,jquery头部线性进度条总结

    前言 网页顶部加载进度条,近年来很流行,很多网站都采用了这种加载方式.网上也有这样类似的插件,今天我们总结一下网页顶部线性页面加载进度条. 头部LoadingBar线性进度条总结 上面的代码只是静态效 ...

  5. 无刷新上传Excel后利用JQuery AJAX 显示进度条的实现方式

    1.前台上传页面代码 <divclass="clearfix mywebsite-nodata"><divid="show"><f ...

  6. android加载h5页面加进度条,使用Android仿微信加载H5页面的进度条

    这篇文章主要为大家详细介绍了Android仿微信加载H5页面进度条,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 前言 Android中WebView打卡前端页面时受到网路环境,页面内容大小的影响 ...

  7. jquery css 流程进度条

    方案1: 方案2: <!DOCTYPE html> <html><head> <meta charset="utf-8"> < ...

  8. ajax 进度条 php,php – Jquery :: Ajax提供进度条?

    您可以通过.html()将动画gif加载到结果区域,直到ajax函数返回结果.只是一个想法 关于jquery ui进度条,间歇地通过你的脚本,你会想要一个表示完成百分比的数值作为一个赋值的javasc ...

  9. JQuery插件——progressbar进度条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

最新文章

  1. 打字游戏--飞机大战
  2. 怎么去控制浏览器对资源文件的处理行为
  3. Xamarin Visual Studio不识别JDK路径
  4. 【Matlab 控制】求左右特征向量
  5. 北京招聘 | 新浪微博机器学习部门招聘推荐算法开发实习生
  6. 复习支持向量机(SVM)没空看书时,掌握下面的知识就够了
  7. wps临时文件不自动删除_电脑:让 Windows 10 系统自动清理临时文件
  8. [Python爬虫] 之二十七:Selenium +phantomjs 利用 pyquery抓取今日头条视频
  9. java给xml加入值,怎么用java读取XML文件里的值并加入jsp页面中的下拉列表中
  10. 云计算大败局:基因与宿命
  11. 微信小程序商城模板平台分享
  12. 计算机音乐谱大全极乐净土,极乐净土maria曲谱
  13. 玉溪第一座智能变电站,造国际一流智能配电网,机器人来运维
  14. [转载] 科学家开发的新AI因过于危险而不敢发布
  15. python+appium+android模拟器自动化测试 源码
  16. 电脑能正常上网,但是显示无Internet
  17. 批量修改ip成自定义网址
  18. 股票-每日复盘-5-24
  19. 爬虫--爬取单张图片
  20. linux查看hive账户权限,Linux用户和权限管理

热门文章

  1. 23 SD配置-主数据-定义销售地区
  2. 16 CO配置-控制-产品成本控制-产品成本计划编制-定义成本构成结构
  3. CSP-S/J2019认证相关内容
  4. Inception Net V1总结
  5. MySQL快速生成大量测试数据1000万
  6. dedeCMS修改文案:页眉rss文字、导航栏“首页”、页脚copyright等
  7. markdown编辑器介绍 - 更具表达性的文档格式
  8. 简约好看的域名售卖页html源码
  9. 让网站变成灰色插件 可以设定特殊时间
  10. WordPress内核站群全自动新闻采集发布源码,单站专用