美文网首页
使用jquery进行图片懒加载

使用jquery进行图片懒加载

作者: zjh111 | 来源:发表于2019-02-14 14:42 被阅读0次

对img和div的背景图片进行懒加载。
在data-original写入真正的链接。

// 注意: 需要引入jQuery
(function() {
    // 获取window的引用:
    var $window = $(window);
    // 获取包含data-src属性的img,并以jQuery对象存入数组:
    var lazyImgs = $('img[data-original]')
    var xxx=[]
    $('img[data-original],div[data-original]').each(function(index,element){
        xxx.push($(this))
    })
    //[].map($('img[data-src]').get(), function (i) {
        //return $(i);
    //});
    console.log(xxx)
    // 定义事件函数:
    var onScroll = function() {
        // 获取页面滚动的高度:
        var wtop = $window.scrollTop();
        // 判断是否还有未加载的img:
        if (xxx.length > 0) {
            // 获取可视区域高度:
            var wheight = $window.height();
            console.log(wheight)
            // 存放待删除的索引:
            var loadedIndex = [];
            // 循环处理数组的每个img元素:
            $.each(xxx, function (index, i) {
                console.log(i)
                // 判断是否在可视范围加200px内:
                if (i.offset().top - wtop < wheight + 200) {
                    if(i[0].tagName === 'IMG'){
                        i.attr('src', i.attr('data-original'));
                    }else if(i[0].tagName === 'DIV'){
                        i.css('background',"url(img/bmw_m1_hood.jpg)")
                    }
                    // 设置src属性:
                    i.attr('src', i.attr('data-original'));
                    // 添加到待删除数组:
                    loadedIndex.unshift(index);
                }
            });
            // 删除已处理的对象:
            $.each(loadedIndex, function (index) {
                xxx.splice(index, 1);
            });
        }
    };
    // 绑定事件:
    $window.scroll(onScroll);
    // 手动触发一次:
    onScroll();
})()
    (function() {
    var $window = $(window);
    var lazyImgs = $('img[data-original]')
    var xxx=[]
    $('img[data-original],div[data-original]').each(function(index,element){
        xxx.push($(this))
    })
    console.log(xxx)
    var onScroll = function() {
        var wtop = $window.scrollTop();
        if (xxx.length > 0) {
            var wheight = $window.height();
            var loadedIndex = [];
            $.each(xxx, function (index, i) {
                if (i.offset().top - wtop < wheight) {
                    if(i[0].tagName === 'IMG'){
                        i.attr('src', i.attr('data-original'));
                    }else if(i[0].tagName === 'DIV'){
                        console.log(i)
                        i.css("background-image","url("+i.attr('data-original')+')')
                    }
                    loadedIndex.unshift(index);
                }
            });
            $.each(loadedIndex, function (i,index) {
                xxx.splice(index, 1);
            });
        }
    };
    onScroll();
    $(window).scroll(onScroll);
})()

相关文章

  • 使用jquery进行图片懒加载

    对img和div的背景图片进行懒加载。在data-original写入真正的链接。

  • Web前端性能优化(二)

    1. 懒加载和预加载 懒加载 即延迟加载,在电商或是页面很长的业务场景中,我们通常会使用懒加载的方式对图片进行请求...

  • 使用jQuery实现图片懒加载原理

    在网页中,常常需要用到图片,而图片需要消耗较大的流量。正常情况下,浏览器会解析整个HTML代码,然后从上到下依次加...

  • Jquery实现图片懒加载

    https://www.liaoxuefeng.com/article/00151045553343934ba3b...

  • jQuery实现图片懒加载

    一、懒加载 1.什么是懒加载 目前,网络上各大论坛,尤其是一些图片类型的网站上,在图片加载时均采用了一种名为懒加载...

  • jQuery实现图片懒加载...

    一、什么是图片懒加载 当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片...

  • Jquery需要掌握的技巧

    检查 jQuery 是否加载 在使用 jQuery 进行任何操作之前,你需要先确认它已经加载: if (typeo...

  • JS使用lazyload进行图片懒加载

    原理: 图片的加载是由src引起的,当对src赋值时浏览器会请求图片资源,基于这个,可以利用html5的属性dat...

  • Vue项目中路由和组件懒加载

    为什么要使用懒加载? 懒加载简单来说就是延迟加载或按需加载,即在需要的时候进行加载。使用懒加载可以带来更好的用户体...

  • 浅谈 vue项目优化

    1.路由懒加载 使用vue-router的方法 2.图片懒加载 组件缓存 使用vue的,详...

网友评论

      本文标题:使用jquery进行图片懒加载

      本文链接:https://www.haomeiwen.com/subject/opseeqtx.html