JavaScript 计算图片加载数量的代码_javascript技巧

通过JavaScript 来计算当前图片加载的张数。
原理:
先定义一个图片的数组,然后通过image的onload事件来计算,注意,onload在ie和火狐有所不同。
最后需要一个进度条与之结合即可。
这个脚本在做游戏的地方用得比较多。
演示:

复制代码 代码如下:

<!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></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
*{
margin:0;
padding:0;
}
body{font-size:12px;}
/*不带文字*/
.progress{
border:0;
width: 152px;
height: 18px;
background:url(yun_qi_img/progress.gif) no-repeat -100px 50%;
}
/*带文字显示*/
.progressbar_3{
width:152px;
position:relative;
height:18px;
text-align:center;
position:relative;
color:#222;
}
.progressbar_3 .text{
width:152px;
position:absolute;
left:0;
top:0;
height:18px;
line-height:18px;
z-index:100;
}
.progressbar_3 .progress{
width:152px;
position:absolute;
left:0;
top:0;
height:18px;
z-index:10;
}
</style>
<script language="javascript">
var PicAr=[['yun_qi_img/bg.jpg','背景'],
['yun_qi_img/c1.png','卡片'],
['yun_qi_img/c2.png','卡片'],
['yun_qi_img/c3.png','卡片'],
['yun_qi_img/c4.png','卡片'],
['yun_qi_img/c5.png','卡片'],
['yun_qi_img/c6.png','卡片'],
['yun_qi_img/c7.png','卡片'],
['yun_qi_img/c8.png','卡片'],
['yun_qi_img/sephira_software.png','卡片栏'],
['yun_qi_img/tragic_phantom.png','剪草机'],
['yun_qi_img/yahoo.gif','游戏LOGO界面'],
['yun_qi_img/Pic2.jpg','简介背景'],
['yun_qi_img/image1.gif','image1'],
['yun_qi_img/image2.gif','image2'],
['yun_qi_img/meneame.jpg','简介背景'],
['yun_qi_img/25css.jpg','简介背景']
];
var LoadAccessNum=0; //载入成功的图片数量
function $(id){
return(document.getElementById(id));
}
/*--------以下是载入图片进度条--------*/
var Browser=new Object();
Browser.userAgent=window.navigator.userAgent.toLowerCase();
Browser.ie=/msie/.test(Browser.userAgent);
Browser.Moz=/gecko/.test(Browser.userAgent);
function LevelLoadProgress(){
var PicNum=PicAr.length;
$('text').innerHTML='正在准备载入游戏素材...';
$("progress").style.backgroundPosition= "-150px 50%";
for(n=0;n<=PicNum-1;n++){
Imagess(n,PicAr[n][0],"img"+n,checkimg);
}
}
function Imagess(n,url,imgid,callback){
var val=url;
var img=new Image();
if(Browser.ie){
img.onreadystatechange =function(){
if(img.readyState=="complete"||img.readyState=="loaded"){
callback(img,imgid,n);
}
}
}else if(Browser.Moz){
img.onload=function(){
if(img.complete==true){
callback(img,imgid,n);
}
}
}
//如果因为网络或图片的原因发生异常,则显示该图片
img.onerror=function(){img.src=val;img.onreadystatechange=null;}
img.src=val;
}
//检测图片加载
function checkimg(obj,imgid,n){
LoadAccessNum+=1;
var PicNum=PicAr.length,ReduceX=150/PicNum,imgFlagHeadLeft=139-LoadAccessNum*ReduceX;
$('text').innerHTML='载入:'+PicAr[n][1]+'('+LoadAccessNum+'/'+PicNum+')';
var a = parseInt(LoadAccessNum*ReduceX) ;
$("progress").style.backgroundPosition= (a-150)+"px 50%";
window.status=LoadAccessNum;
if(LoadAccessNum==PicNum){
$('dFlagMeter').style.display='none';
LoadAccess();
return false
}
}
/*--------以上是载入图片进度条--------*/
//调用载入图片进度条LevelLoadProgress(),载入成功后执行LoadAccess();
function LoadAccess(){
$('dFlagMeter2').style.display='block';
}
</script>
</head>
<body onload="document.execCommand('BackgroundImageCache',false,true);LoadAccess();">
<div style="position: absolute; z-index: 255; left: 260px; top: 150px;" id="dFlagMeter">
<table width="500" height="40" cellspacing="0" cellpadding="0" bordercolor="#000000" border="0">
<tbody><tr>
<td width="343" valign="top">
<div class="progressbar_3">
<div id="text" class="text">正在准备载入游戏素材...</div>
<img id="progress" class="progress" width="152" height="18" title="100%" alt="100%" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/bg.gif style="background-position: -150px 50%;"/>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div style="display:none;position: absolute; z-index: 254; left: 260px; top: 150px;" id="dFlagMeter2">载入成功!</div>
<script type="text/javascript">
LevelLoadProgress();
</script>
</body>
</html>

时间: 2024-08-01 09:19:34

JavaScript 计算图片加载数量的代码_javascript技巧的相关文章

网页图片延时加载的js代码_javascript技巧

实现原理  把所有需要延时加载的图片改成如下的格式: <img lazy_src="图片路径" border="0"/> 然后在页面加载时,把所有使用了lazy_src的图片都保存到数组里,然后在滚动时计算可视区域的top,然后把延时加载的图片中top小于当前可视区域(即图片出现在可视区域内)的图片的src的值用lazy_src的来替换(加载图片) 代码 lazyLoad=(function() { var map_element = {}; var e

基于JavaScript实现鼠标向下滑动加载div的代码_javascript技巧

废话不多说了,关键代码如下所示: <!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> new

js或者jquery判断图片是否加载完成实现代码_javascript技巧

网页中有时候需要获得图片的宽度和高度,来定义某些大小,可是这个是需要从服务端请求图片,下载到本地才能够得到的,有些js或者jquery代码在还没有加载完图片时就执行了.怎么办呢? jquery提供一个方法: 复制代码 代码如下: 01.$("").load(function(){...}); 其中选择器是图片的id或class,function里面的方法就是回调函数,在图片加载完成后执行,但是我试验了很多,压根儿不是那么回事,正确的解决方法是: 用js的onload方法: 复制代码 代

js点击文本框后才加载验证码实例代码_javascript技巧

经常到各大网站去留言或者发帖的朋友应该知道现在很多网站的留言地方的验证码不是直接显示的.而是在点击验证码输入框之后才会显示出来验证码的.下面作者也总结了一篇关于如何利用js实现点击文本框然后再加载验证码的效果的. 废话不多说了,下面是具体的实现代码. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title

判断控件是否已加载完成的代码_javascript技巧

例如: 复制代码 代码如下: <input id="btnPost" type="button" value="button" /> <img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga" /> 浏览器在解析时,首先加载 input标签,然后加载i

js 判断脚本加载完毕的代码_javascript技巧

复制代码 代码如下: if(this.isIE) { js.onreadystatechange=function(){if(js.readyState=="loaded" || js.readyState=="complete") callback();} }else{js.onload=function(){callback();}} js.onerror=function(){alert('Not Found (404): '+src)}//chrome JS

javaScript 页面自动加载事件详解_javascript技巧

方法1: 复制代码 代码如下:  Window.onload=function(){   Var name=document.getElementById("name").val();//加载HTML,并且加载外部所有所有的引用文件(图片,css样式,js等)} 方法2:需要引入Jquery的 .js文件 复制代码 代码如下: $(document).ready(function(){         alert("JQuery的第一个入门案例");//加载HTML

js动态加载以及确定加载完成的代码_javascript技巧

代码如下: 复制代码 代码如下: var otherJScipt = document.createElement("script"); otherJScipt = document.createElement("script"); otherJScipt.setAttribute("type", "text/javascript"); otherJScipt.setAttribute("src", &qu

异步加载script的代码_javascript技巧

通过iframe 异步加载script 通过异步请求另一页面的script 是不执行的,只返回html 原文件,因为返回的文本没有经过浏览器的解析执行. 看代码 a1.html 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>无标题页</title> </head> <script type="text/javascrip