js图片懒加载

html中内容,img的src放入懒加载的动态图,data-src中放入真实的图片。

 <img src="懒加载的图片" data-src="真实图片" alt="">

js代码,记得引入jQuery.js ,我没有封装js,你可以根据自己需求封装一个js文件


        var clock; //这里的clock为timeID,
        //滚动区域,
        $('.container').on('scroll', function () {
            if (clock) {
                clearTimeout(clock);
            }
            //模拟一个时间,自己根据需求调整时间
            clock = setTimeout(function () {
                //console.log('运行了一次');
                lazyRender();
            }, 500)
        })
        // 先进行一次检查
        lazyRender();
        $(window).on('scroll', function () {
            lazyRender();
        })

        function lazyRender() {
        	//找到需要替换区域的所有img,根据自己的需求
            $('.container img').each(function () {
                if (checkShow($(this)) && !isLoaded($(this))) {
                    loadImg($(this));
                }
            })
        }

        function checkShow($img) { // 传入一个img的jq对象
            var scrollTop = $(window).scrollTop();  //即页面向上滚动的距离
            var windowHeight = $(window).height(); // 浏览器自身的高度
            var offsetTop = $img.offset().top;  //目标标签img相对于document顶部的位置

            if (offsetTop < (scrollTop + windowHeight) && offsetTop > scrollTop) { //在2个临界状态之间的就为出现在视野中的
                return true;
            }
            return false;
        }

        function isLoaded($img) {
            return $img.attr('data-src') === $img.attr('src'); //如果data-src和src相等那么就是已经加载过了
        }

        function loadImg($img) {
            $img.attr('src', $img.attr('data-src')); // 加载就是把自定义属性中存放的真实的src地址赋给src属性
        }

对你有帮助的话请收藏一下哦,如有疑问,请大家在评论区指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值