美文网首页
js实现图片的懒加载(jquery)

js实现图片的懒加载(jquery)

作者: 饥人谷_js_chen | 来源:发表于2017-02-04 19:19 被阅读0次

一、原理

  1. 在浏览器滚动的时候,遍历所有图片,若图片在视窗可视区域,则加载该图片
  2. 将图片地址存放在自定义属性中(data-src),需要加载图片再从中取出来
  3. 判断图片可见:
    • 图片上部分进入可视窗体

windowHeight + scrollTop > offsetTop
- 图片下部分进入可视窗体

offsetTop + nodeHeight > scrollTop

二、如何实现

  1. 需要用到4个高度
let windowHeight = $(window).height(),//视窗高度
        scrollTop = $(window).scrollTop(),//滚动条滚动距离
        offsetTop = $node                        //图片相对于文档的垂直坐标
            .offset()
            .top,
        nodeHeight = $node.height();    //图片高度
  1. 判断图片可见
if (windowHeight + scrollTop > offsetTop && offsetTop + nodeHeight > scrollTop) {
        return true;
    } else {
        return false;
    }
  1. 方法:是否显示该图片
const isShow = ($node) => {
    let windowHeight = $(window).height(),
        scrollTop = $(window).scrollTop(),
        offsetTop = $node
            .offset()
            .top,
        nodeHeight = $node.height();
    if (windowHeight + scrollTop > offsetTop && offsetTop + nodeHeight > scrollTop) {
        return true;
    } else {
        return false;
    }
}
  1. 方法:遍历所有图片,加载没有load类名且isShow返回true的图片(加载前给图片加类名load)
const loadImgs = ()=>{
    console.log('1');
    $('.wrapper img').not('.load').each(function(index){
    console.log('2');
        let $node = $(this);
        if(isShow($node)){
            $node.addClass('load');
            $node.attr('src',$node.attr('data-src'));
        }
    });
}
  1. 最后,监听屏幕滚动事件,并在一开始进入界面时加载图片
loadImgs();
$(window).scroll(function () {
    loadImgs();
})

三、 附上代码和效果

相关文章

  • js实现图片的懒加载(jquery)

    一、原理 在浏览器滚动的时候,遍历所有图片,若图片在视窗可视区域,则加载该图片 将图片地址存放在自定义属性中(da...

  • 图片懒加载

    前端实现图片懒加载(lazyload)的两种方式 原生JS实现最简单的图片懒加载 30行Javascript代码实...

  • Jquery实现图片懒加载

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

  • jQuery实现图片懒加载

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

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

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

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • js实现图片懒加载

    现如今,网站载有的信息量越来越大,其中图片占据着很大一部分,这样一来可以使整个页以面图文结合的形式展现,更加美观。...

  • js实现图片懒加载

    介绍 这是一个用原生JavaScript(es5)写的图片懒加载插件(模块),并且它足够小,源文件只有4kb,压缩...

  • js实现图片懒加载

    一、图片懒加载原理 浏览器是否发起请求图片是根据 中src的属性,所以实现原理就是在图片没有进入可视区域的时候将图...

  • js 实现图片懒加载

    一、懒加载 懒加载也叫延迟加载,Js中图片的延迟加载,延迟图片需要符合某些条件时才加载;对于图片过多的页面,为了加...

网友评论

      本文标题:js实现图片的懒加载(jquery)

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