美文网首页
图片懒加载

图片懒加载

作者: 流着万条永远的河 | 来源:发表于2017-10-21 23:06 被阅读0次

demo
思路:
为了让体验更好,如果页面一下要同时加载所有大量图片,会有白屏之类的体验,就懒加载。

  • 判断图片有木有出现在页面,出现了,就加载它。
  • 加不加载,靠控制img标签的src实现。
  • 事件是窗口的滚动,这个窗口可以是window,父容器,分析得出。
  • 加了定时器,只是为了让懒加载更生动点,实际不能南辕北辙。
  • 可以加个函数节流,避免滚动导致的多次判断。
  • 可以筛选已经加载过的图片,不让其进入再次判断的范围里。
    代码:
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>懒加载</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        html,
        body {
            height: 100%;
        }
        
        .box {
            width: 100%;
        }
        
        .box img {
            width: 50%;
            height: 50%;
            float: left;
        }
        
        .clearfix:after {
            content: '';
            display: block;
            clear: both;
        }
    </style>
</head>

<body>
    <script src="https://code.jquery.com/jquery-1.9.1.js"></script>
    <div class="box clearfix">
        ![1](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![2](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![3](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![4](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![5](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![6](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![7](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![8](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![9](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![10](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![11](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![12](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![13](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![14](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![15](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![16](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![17](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![18](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![19](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)
        ![20](https://img.haomeiwen.com/i6723749/255721e32d39af7a.gif?imageMogr2/auto-orient/strip)


    </div>
    <script>
        var isloading
        $(window).on('scroll', function() {
            var timer
            clearTimeout(timer)
            timer = setTimeout(start(), 200)

        })
        start()

        function start() {

            console.log($('.box img').not('[data-loaded]'))
            $('.box img').not('[data-loaded]').each(function() {

                var $node = $(this)
                if (isshow($node)) {
                    setTimeout(loading($node), 2000)


                }

            })
        }

        function isshow($img) {
            return $img.offset().top <= $(window).height() + $(window).scrollTop()
        }

        function loading($img) {
            $img.attr('src', $img.attr('data-src'))
            $img.attr('data-loaded', true)
        }
    </script>
</body>

</html>

相关文章

  • 项目优化

    图片懒加载,数据懒加载, 路由懒加载 1.图片懒加载原理 1.1 开始时 不设置src属性 1.2 图片在可视区域...

  • JS

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

  • 图片懒加载

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

  • 图片懒加载

    图片懒加载 图片懒加载在一些图片密集型的网站中运用比较多,通过图片懒加载可以让一些不可视的图片不去加载,避免一次性...

  • js 实现图片懒加载

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

  • 图片懒加载和预加载

    图片懒加载的原理是什么? 首先明白为什么要懒加载: 懒加载即延迟,对于图片过多的页面,为了加快页面加载速度,我们需...

  • selenuim和phantonJs处理网页动态加载数据的爬取

    一.图片懒加载 什么是图片懒加载? 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源...

  • 懒加载和瀑布流

    一、简述图片懒加载的实现原理 图片懒加载 若一开始,页面上有许多的图片要加载,而如果同时加载这么多图片,会消耗性能...

  • jquery懒加载、回到顶部

    1.知识点部分: 懒加载图片的原理是什么? 图片懒加载也称为曝光加载,将页面上的图片分批加载,只有当图片出现在wi...

  • 懒加载和预加载

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

网友评论

      本文标题:图片懒加载

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