博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery 图片懒加载
阅读量:7239 次
发布时间:2019-06-29

本文共 3167 字,大约阅读时间需要 10 分钟。

 

jquery 图片懒加载

CreationTime--2018年7月1日14点45分

Author:Marydon

1.源码展示

(function(a){a.fn.lazyload=function(b){
var c={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:window,skip_invisible:!0};b&&(null!==b.failurelimit&&(b.failure_limit=b.failurelimit,delete b.failurelimit),a.extend(c,b));var d=this;return 0==c.event.indexOf("scroll")&&a(c.container).bind(c.event,function(b){
var e=0;d.each(function(){
if(c.skip_invisible&&!a(this).is(":visible"))return;if(!a.abovethetop(this,c)&&!a.leftofbegin(this,c))if(!a.belowthefold(this,c)&&!a.rightoffold(this,c))a(this).trigger("appear");else if(++e>c.failure_limit)return!1});var f=a.grep(d,function(a){
return!a.loaded});d=a(f)}),this.each(function(){
var b=this;b.loaded=!1,a(b).one("appear",function(){
this.loaded||a("").bind("load",function(){a(b).hide().attr("src",a(b).data("original"))[c.effect](c.effectspeed),b.loaded=!0}).attr("src",a(b).data("original"))}),0!=c.event.indexOf("scroll")&&a(b).bind(c.event,function(c){b.loaded||a(b).trigger("appear")})}),a(c.container).trigger(c.event),this},a.belowthefold=function(b,c){
if(c.container===undefined||c.container===window)var d=a(window).height()+a(window).scrollTop();else var d=a(c.container).offset().top+a(c.container).height();return d<=a(b).offset().top-c.threshold},a.rightoffold=function(b,c){
if(c.container===undefined||c.container===window)var d=a(window).width()+a(window).scrollLeft();else var d=a(c.container).offset().left+a(c.container).width();return d<=a(b).offset().left-c.threshold},a.abovethetop=function(b,c){
if(c.container===undefined||c.container===window)var d=a(window).scrollTop();else var d=a(c.container).offset().top;return d>=a(b).offset().top+c.threshold+a(b).height()},a.leftofbegin=function(b,c){
if(c.container===undefined||c.container===window)var d=a(window).scrollLeft();else var d=a(c.container).offset().left;return d>=a(b).offset().left+c.threshold+a(b).width()},a.extend(a.expr[":"],{"below-the-fold":function(b){
return a.belowthefold(b,{threshold:0,container:window})},"above-the-fold":function(b){
return!a.belowthefold(b,{threshold:0,container:window})},"right-of-fold":function(b){
return a.rightoffold(b,{threshold:0,container:window})},"left-of-fold":function(b){
return!a.rightoffold(b,{threshold:0,container:window})}})})(jQuery)

2.调用

window.onload = function(){    $("img.lazy").lazyload({      placeholder : "*.gif", //用图片提前占位        // placeholder,值为某一图片路径.此图片用来占据将要加载的图片的位置,待图片加载时,占位图则会隐藏      effect: "fadeIn", // 载入使用何种效果        // effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn      threshold: 200, // 提前开始加载        // threshold,值为数字,代表页面高度.如设置为200,表示滚动条在离目标位置还有200的高度时就开始加载图片,可以做到不让用户察觉      event: 'click',  // 事件触发时才加载        // event,值有click(点击),mouseover(鼠标悬浮),sporty(运动的),foobar(…).可以实现鼠标悬浮或点击图片才开始加载      container: $("#container"),  // 对某容器中的图片实现效果        // container,值为某容器.lazyload默认在拉动浏览器滚动条时生效,这个参数可以让你在拉动某DIV的滚动条时依次加载其中的图片      failurelimit : 10 // 图片排序混乱时         // failurelimit,值为数字.lazyload默认在找到第一张不在可见区域里的图片时则不再继续加载,但当HTML容器混乱的时候可能出现可见区域内图片并没加载出来的情况,failurelimit意在加载N张可见区域外的图片,以避免出现这个问题.    });}

 

 相关推荐:

 

 

转载地址:http://rkgfm.baihongyu.com/

你可能感兴趣的文章
Spring Boot入门(2)使用MySQL数据库
查看>>
支撑全网70%世界杯流量 盘点世界杯直播背后的阿里云黑科技
查看>>
JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】...
查看>>
直击云栖大会·上海峰会 | 一张图看懂首日重磅发布
查看>>
ADO:实现向Oracle数据库中插入数据
查看>>
Eclipse 和 Equinox 发布 4.11 版本,支持 Java 12
查看>>
「镁客·请讲」因诺航空胡军:无人机行业进入洗牌期,我们渴望完整的产业链...
查看>>
区块链钱包开发
查看>>
游戏公司盯上了区块链:是机会,还只是一场游戏?
查看>>
工控主板定制ARM9选择思路
查看>>
PHP实现远程下载文件到本地
查看>>
Matplotlib 中文用户指南 7.3 事件处理及拾取
查看>>
IBM新思路,让无人机照看、训练你的宝贝萌宠
查看>>
使用 AppImageLauncher 轻松运行和集成 AppImage 文件
查看>>
区块链技术指北社区(Chain One Community)规划
查看>>
善用金融科技——第十四届中国区域商业银行信息化发展战略高峰年会5月开幕...
查看>>
镁客网首场香港活动,与海内外人士共话AI革新
查看>>
操作ACCESS数据库注意事项
查看>>
禁止IE7的页面缩放功能
查看>>
java多线程的等待唤醒机制及如何解决同步过程中的安全问题
查看>>