美文网首页
大型多图片web页面懒加载小demo

大型多图片web页面懒加载小demo

作者: 终极菜鸟_424b | 来源:发表于2019-01-18 16:29 被阅读0次

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<style>

body{

    margin: 0;

}

ul{

    margin: 0;

    padding: 0;

    list-style: none;

}

img{

    border: none;

    vertical-align: middle;

}

.in{

    border: 1px solid black;

    margin: 10px;

    text-align: center;

    height: 400px;

    width: 400px;

    float: left;

}

.in img{

    height: 400px;

    width: 400px;

}

</style>

</head>

<body>

<ul class="list">

    <li class="in"><img src="loading.svg" alt="测试" data-original = "pic.png"></li>

    <li class="in"><img src="loading.svg" alt="测试" data-original = "pic.png"></li>

    <li class="in"><img src="loading.svg" alt="测试" data-original = "pic.png"></li>

    <li class="in"><img src="loading.svg" alt="测试" data-original = "pic.png"></li>   

    <li class="in"><img src="loading.svg" alt="测试" data-original = "pic.png"></li>

    <li class="in"><img src="loading.svg" alt="测试" data-original = "pic.png"></li>

    <li class="in"><img src="loading.svg" alt="测试" data-original = "pic.png"></li>

    <li class="in"><img src="loading.svg" alt="测试" data-original = "pic.png"></li>                         

</ul>

<script>

function loadImg(arr){

        for( var i = 0,len = arr.length; i < len; i++){

            if(arr[i].getBoundingClientRect().top < document.documentElement.clientHeight && !arr[i].isLoad){

                arr[i].isLoad = true;

                arr[i].style.cssText = "transition: ''; opacity: 0;"

                if(arr[i].dataset){

                    aftLoadImg(arr[i],arr[i].dataset.original);   

                }else{

                    aftLoadImg(arr[i],arr[i].getAttribute("data-original"));

                }

                (function(i){

                    setTimeout(function(){

                        arr[i].style.cssText = "transition: 1s; opacity: 1;"

                    },16)

                })(i);

            }

        }

    }

    function aftLoadImg(obj,url){

        var oImg = new Image();

        oImg.onload = function(){

            obj.src = oImg.src;

        }

        oImg.src = url;

    }

 var aImages = document.images;

    loadImg(aImages);

    window.onscroll = function(){

        loadImg(aImages);

    };

</script>   

</body>

</html>

相关文章

  • 大型多图片web页面懒加载小demo

    Document body{ margin: 0; } ul{ margi...

  • 懒加载和瀑布流

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

  • 图片懒加载和预加载

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

  • 图片懒加载

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

  • js 实现图片懒加载

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

  • # 懒加载和预加载

    web前端 1. 懒加载 1、不加载全部图片 2、首先显示在页面中的图,首先进行加载 3、当屏幕发生滚动的时候,判...

  • 在vue中使用图片懒加载插件

    什么是图片懒加载? 当打开一个有很多图片的页面时,先只加载页面上看到的图片,等滚动到页面下面时,再加载所需的图片。...

  • jquery懒加载、回到顶部

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

  • 个人博客—图片懒加载

    个人博客—图片懒加载 页面加载时,请求图片,默认显示占位符图片; 当页面下拉到图片位置时,再把占位符图片替换成相应...

  • Vue自定义指令实现图片懒加载

    什么是图片懒加载 进入页面的时候,只请求可视区域的图片资源 懒加载原理 图片的标签是 img 标签,图片的来源主要...

网友评论

      本文标题:大型多图片web页面懒加载小demo

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