博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
延时加载图片(终极版,解决一行多张图片无法显示的问题)
阅读量:5169 次
发布时间:2019-06-13

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

原理前几篇文章都说过了,以下是修改后的代码:

 

 

var lazyLoad = {

    
//
/ <summary>
    
//
/ img标签中的存放图片路径的自定义属性名称
    
//
/ </summary>
    AttributeName: "lazyload",
    
//
/ <summary>
    
//
/ 判断一张图片是否在当前屏幕中,是否需要显示
    
//
/ </summary>
    IsShow: 
function ($img) {
        
//
获取窗体的高度
        
var windowHeight = $(window).height();
        
var scrollTop = $(document).scrollTop();
        
var _scrollTop = $img.offset().top - windowHeight;
        
if (parseInt(scrollTop) >= parseInt(_scrollTop)) {
            
return 
true;
        }
        
return 
false;
    },
    
    
//
/ <summary>
    
//
/ 当scroll事件被触发时,进行加载图片的操作
    
//
/ </summary>
    LoadImage: 
function () {
        
var _this = 
this;
        
//
如果页面中有需要延迟加载的图片执行
        $("img[" + 
this.AttributeName + "]").show();
        
if ($("img[" + 
this.AttributeName + "]").size() > 0) {
            
//
显示当前屏幕中的图片
            
//
循环所有延迟加载图片,判断高度,如果在当前屏幕则显示
            $("img[" + 
this.AttributeName + "]").each(
function () {
                
if (_this.IsShow($(
this))) {
                    $(
this).hide();
                    
var src = $(
this).attr(_this.AttributeName);
                    $(
this).attr("src", src);
                    $(
this).removeAttr(_this.AttributeName);
                    $(
this).fadeTo(700, 1);
                }
            });
        }
        $("img[" + 
this.AttributeName + "]").hide();
    },
    
//
/ <summary>
    
//
/ 启动延时加载
    
//
/ <params key="v">img标签中的存放图片路径的自定义属性名称</params>
    
//
/ </summary>
    Run: 
function (v) {
        
if (v != undefined && v != 
null && 
typeof (v) == "string") {
            
this.AttributeName = v;
        }
        
this.LoadImage();
        
var _this = 
this;
        
if ($("img[" + 
this.AttributeName + "]").size() > 0) {
            $(window).bind("scroll", 
function () {
                _this.LoadImage();
            });
        }
    }
};
lazyLoad.Run();  

 

 

转载于:https://www.cnblogs.com/windinsky/archive/2012/06/06/2538524.html

你可能感兴趣的文章
Jquery复习(十)之$.fn.extend()
查看>>
z-index使用及一定要加backgroun
查看>>
面向对象的七种设计原则
查看>>
05-numpy-笔记-fliplr
查看>>
基于消逝时间量的共识机制(POET)
查看>>
macOS Mojave 10.14 无法安装brew缺少Command Line Tools for Xcode的解决办法
查看>>
要么甲必胜,要么乙必胜
查看>>
第三周笔记
查看>>
基于Storm构建实时热力分布项目实战
查看>>
【BZOJ1270】1270: [BeijingWc2008]雷涛的小猫 DP
查看>>
gpload的简单实用
查看>>
第二章 flex输入输出结构
查看>>
Uva 572 Oil Deposits
查看>>
关于Cocos2d-x物理引擎用到的类和使用
查看>>
关于Unity中变量和函数的定义
查看>>
读build to win之感
查看>>
支持向量机
查看>>
Vim 编辑器指令
查看>>
iOS 七大手势之轻拍,长按,旋转手势识别器方法-赵小波
查看>>
NS2入门指导 ---SeaSon & crabhit From DB lab of HIT
查看>>