100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 图片预加载 图片延迟加载插件

图片预加载 图片延迟加载插件

时间:2021-04-16 09:56:24

相关推荐

图片预加载 图片延迟加载插件

网站上经常会有这种现象。

1、带有图片的列表页面图片没有加载过来时候,页面排版是乱的。

2、图片加载失败后显示一个裂痕玻璃图片 并不友好

为了解决这些现象 我自己封装了了个插件:

/*图片加载未完成显示占位图*///判断手机内核var local_Browser=new Object();local_Browser.userAgent=window.navigator.userAgent.toLowerCase();local_Browser.ie=/msie/.test(local_Browser.userAgent);// local_Browser.Moz=/gecko/.test(local_Browser.userAgent);//判断是否加载完成var img_errors=0;function local_Imagess(url,imgid,callback){var val=url;var img=new Image();if(local_Browser.ie){img.onreadystatechange =function(){if(img.readyState=="complete"||img.readyState=="loaded"){callback(img,imgid);}}}else{img.οnlοad=function(){if(plete==true){callback(img,imgid);}}}

//如果不是wifi调用小图if(!_gw_wifi_conn){if(url==undefined)return;if(url.lastIndexOf("icon_")>=0 || url.lastIndexOf("small_")>=0){img.οnerrοr=function(){img.src=imgid.attr('src');}}else{pos=url.lastIndexOf(".");val=url.substr(0,pos)+"_s"+url.substr(pos);img.οnerrοr=function(){img.src=url;img_errors++;if(img_errors>200){img.src="";}}}}else{img.οnerrοr=function(){img.src=imgid.attr('src');}}//如果因为网络或图片的原因发生异常,则显示该图片img.src=val;}//显示图片function checkimg(obj,imgid){imgid.attr('src',obj.src)}

调用方式如:rsrc为真实地址 src是默认图片 <img rsrc="{$site_url}/{$store_infos.mobile_logo}" src='{img file=mobile/default_img.jpg}' width="115px" height="115px" class="bi_conimg" >

$("img[rsrc]").each(function(index,domEle){local_Imagess($(this).attr('rsrc'),$(this),checkimg);});

2、echo.js

插件描述:和 Lazy Load 一样,Echo.js 也是一个用于图像延迟加载 JavaScript。不同的是 Lazy Load 是基于 jQuery 的插件,而 Echo.js 不依赖于 jQuery 或其他 JavaScript 库,可独立使用。并且 Echo.js 非常小巧,压缩后不足 1KB。

兼容性

Echo.js 使用了 HTML5 的 date 属性,并且需要获取该属性的值,所以它并不兼容 IE6、IE7。虽然 Lazy Load 也使用了 HTML5 的 date 属性,但它获取值的方法不一样。

使用方法

1、引入文件

2、HTML

blank.gif 是一个 1 x 1 的图片,用做默认图片,data-echo 的属性值是图片的真实地址。同样最好给图片设置宽度和高度,或者在 CSS 中设置也可以,否则似乎很底部很底部的图片才会延迟加载。

3、JavaScript

参数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。