美文网首页
封装图片预加载器

封装图片预加载器

作者: 你怀中的猫 | 来源:发表于2022-04-07 19:39 被阅读0次

1、图片预加载器插件的参数

参数 参数表示的意义
data 图片地址
each 监听图片加载过程
success 所有图片加载完成

2、图片预加载器js代码部分

function preLoad(options) {
    //获取传入的资源图片路径数组
    var data = options.data;
    //定义变量来进行加载完成次数
    var count = 0;
    //定义变量来保存根据data生成的img对象
    var imgs = [];
    //遍历data生成img标签,并绑定事件
    data.forEach(function (src) {
        //创建img标签
        var img = new Image();
        //给标签赋值地址
        img.src = src;
        //创建好的图片放入imgs数组
        imgs.push(img);
        img.onload = function () {
            count++;
            //监听图片加载过程
            options.each(count,data.length);
        
            if (count == data.length) {
                //所有图片加载完成
                options.success(imgs);
        
            }
        }
    })
}

3、代码示例

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图片预加载器</title>
    <style>
        #wrap {
            width: 800px;
            margin: auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            border: 1px solid red;
        }

        #wrap img{
            width: 200px;
            margin: 30px;
        }
        #mask {
            width: 100px;
            height: 100px;
            border-radius: 10px;
            color: #fff;
            background-color: #888585;
            position: fixed;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
            margin: auto;
            font-size: 30px;
            font-weight: bold;
            text-align: center;
            line-height: 100px;
            display: none;
        }
    </style>
</head>

<body>
    <div id="mask">0%</div>
    <div id="wrap"></div>
</body>
<script src="./Load.js"></script>

<script>


    // 这里传入自己的图片地址
    var data = [
        "https://scpic.chinaz.net/files/pic/pic9/202101/apic30145.jpg",
        "https://scpic.chinaz.net/files/pic/pic9/202101/apic30145.jpg",
        "https://scpic.chinaz.net/files/pic/pic9/202101/apic30145.jpg",
        "https://scpic.chinaz.net/files/pic/pic9/202101/apic30145.jpg",
        "https://scpic.chinaz.net/files/pic/pic9/202101/apic30145.jpg",
        "https://scpic.chinaz.net/files/pic/pic9/202101/apic30145.jpg",
        "https://scpic.chinaz.net/files/pic/pic9/202101/apic30145.jpg",
    ]

    //1、显示一下进度框
    mask.style.display = 'block';
    //2、调用函数进行图片的预加载
    preLoad({
        data : data,
        //是在图片加载过程中不断调用的,now表示当前加载完成图片数量
        each : function(now,total){
            //修改以下mask中的显示的数值 
            mask.innerHTML = Math.floor(now / total * 100) + "%";
        },
        success : function(imgs){
            //等加载完成之后
            //1、关掉mask
            mask.style.display = "none";
            //2、向wrap中添加所有的已经生成好的图片
            imgs.forEach(function(img){
                wrap.appendChild(img);
            })
        
        }
    })

</script>

</html>

相关文章

  • 封装图片预加载器

    1、图片预加载器插件的参数 参数参数表示的意义data图片地址each监听图片加载过程success所有图片加载完...

  • js-事件委托&图片预加载

    事件委托 图片预加载 吸顶条 图片预加载

  • 图片预加载

    背景 利用图片的预加载技术获得更好的用户体验 什么是有序预加载和无序预加载 jQuery插件的写法 图片预加载,预...

  • 图片预加载未封装版

    知识点: var myImg = new Image(); 本质上就是虚拟创建一个img标签,存储已经加载好的图片...

  • 图片预加载,封装可复用

    html css js 插件内容js

  • JS

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

  • 图片懒加载

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

  • 前端图片加载优化

    预加载 图片预加载可以提高用户体验,对于图片画廊和图片占比很大的网页内容尤其重要 css预加载 利用css的bac...

  • 【JS】图片预加载--无序加载网站loading

    课程前言: 慕课网 --图片预加载 图片预加载的特点: ( 1、网站的Loading页 2、局部图片的加载--表情...

  • 深度理解 图片预加载和缓存机制

    本文通过两个图片预加载案例引起的缓存相关问题,探讨了图片预加载处理技术,和浏览器网络请求以及缓存机制的一些问题。 ...

网友评论

      本文标题:封装图片预加载器

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