图片加载js--图片被动加载

Javascript实现的页面图片被动加载类,在使用前用1像素图像进行占位,并给img添加 自定义_src属性 ,当有图片进入可视区域内时,载入图片,提高页面载入速度,节省不必要的流量和连接数。主函数获取其他脚本注册到window上的onscroll和onresize事件,避免冲突。 本代码在IE6 firefox3.6 Firefox4.0 chrome opera 11.10中测试通过。被动加载的意义:当用户拖动滚动条,如果此时网页有图片的话开始加载,并不是拖不拖滚动条都先把图片加载完。

这样做的好处:   

1,加快页面载入速度,提高用户体验,首页图片较多的页面尤其明显  

2,节省流量和服务器连接数


代码如下:

<!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>无标题文档</title>
<script>
window.οnlοad=function(){
visible();
window.οnresize=function(){
visible();
}
document.οnscrοll=function(){
visible();
}
function visible(){
var oImg=document.getElementsByTagName('img');
var scrollTop=document.body.scrollTop || document.documentElement.scrollTop;//滚动条的高度;
var windowH=window.innerHeight;


for(var i=0; i<oImg.length; i++){
oImg[i].index=i;
var imgT=oImg[i].offsetTop;//表示这一张图片相对于最顶端的距离

if((scrollTop+windowH)>imgT && scrollTop<imgT){//判断图片是否在可视区

//判断是否已经修改图片的路径了
if(oImg[i].attributes["src"].value != oImg[i].attributes["_src"].value && oImg[i].attributes["src"].value !='img/xian.jpg'){
oImg[i].οnerrοr=function(){//图片的加载失败时就触发事件
this.src='img/xian.jpg';//this表示当前触发事件的图片
alert('图片'+this.index+'加载出错');
}
oImg[i].src=oImg[i].attributes["_src"].value;
//getAttributes(属性名)表示获取属性的值
//oImg[i].attributes["_src"].value也是获取属性的值
}
}
}
}

};
</script>
<style>
*{ padding:0; margin:0;}
ul{ width:500px; margin:20px auto;}
ul li{ list-style-type:none; margin-bottom:120px;}
</style>
</head>


<body>
<ul style="margin-top:50px">
    <li>1<img src="img/wen.png" _src="img/31.jpg" width="200" height="100"  /></li>
    <li>2<img src="img/wen.png" _src="img/32.jpg" width="200" height="100"  /></li>
    <li>3<img src="img/wen.png" _src="img/33.jpg" width="200" height="100"  /></li>
    <li>4<img src="img/wen.png" _src="img/4.jpg" width="200" height="100"  /></li>
    <li>5<img src="img/wen.png" _src="img/5.jpg" width="200" height="100"  /></li>
    <li>6<img src="img/wen.png" _src="img/6.jpg" width="200" height="100"  /></li>
</ul>
<ul style="margin-top:50px">
<li>7<img src="img/wen.png" _src="img/7.jpg" width="200" height="100"  /></li>
    <li>8<img src="img/wen.png" _src="img/8.jpg" width="200" height="100"  /></li>
    <li>9<img src="img/wen.png" _src="img/9.jpg" width="200" height="100"  /></li>
    <li>10<img src="img/wen.png" _src="img/10.jpg" width="200" height="100"  /></li>
    <li>11<img src="img/wen.png" _src="img/11.jpg" width="200" height="100"  /></li>
    <li>12<img src="img/wen.png" _src="img/12.jpg" width="200" height="100"  /></li>
    <li>13<img src="img/wen.png" _src="img/13.jpg" width="200" height="100"  /></li>
    <li>14<img src="img/wen.png" _src="img/14.jpg" width="200" height="100"  /></li>
    <li>15<img src="img/wen.png" _src="img/15.jpg" width="200" height="100"  /></li>
</ul>
</body>
</html>


在根目录下的img文件夹中的图片:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值