页面加载和图片加载loading

准备放假了!也是闲着了 ,就来整理之前学到或用到的一下知识点和使用内容,这次记录的是关于加载的友好性loading!!!这里记录一下两种加载方法

1.页面加载的方法,它需要用到js里面两个方法

  • document.onreadystatechange = function(){}
  • document.readyState//有两个值
    • interactive//加载中
    • complete//加载完成

两个方法同时使用

    document.onreadystatechange = function(){
        if(document.readyState == "complete"){//如果加载完成
            $(‘.loading‘).fadeOut();//让loading效果消失,显示页面
        }
    }

这里同时介绍两个网站:1.https://loading.io/,制作loading图案的网页,可以是svg,可以是gif,也可以是css3

            2.https://icons8.com/preloaders/,同样也是找loading特效的网页

           注意:都是部分要花钱,部分免费!

2.图片加载方式,同样的,需要用到js的Image图像对象和onload方法

    $(function(){
        var $img = $(‘img‘);
        var num = 0;//计算请求的个数
        $img.each(function(i){//遍历每个图片
            var oImg = new Image();
            oImg.onload  = function(){
                oImg.onload = null;//避免重复请求
                $(‘.loading b‘).html( parseInt(num/ $img.length*100)+‘%‘);//请求的个数/请求总数 的百分比
                num++;//每次遍历请求,添加一次
                if(num>= i){
                    $(‘.loading‘).fadeOut();
                }
            }
            oImg.src = $img[i].src;       //注意:src属性的添加必须要onload方法的后面,不然报错!
        })
    })

下面是全部代码:(图片链接是远程,jq是cnd,复制代码可以直接加载)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{margin:0;padding:0;}
        img{width:100%;}
        .loading{background:green;position:fixed;top:0;left:0;width:100%;height:100%;z-index: 100;}
        .loading .icon{width:100px;height:100px;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;font-size:30px;text-align:center;line-height:100px;color:white;}
        .loading .icon span{display:block;position:absolute; width:80px;height:80px;border-radius:50%;box-shadow:0 2px 0 0 #ccc;top:10px;left:10px;animation:rotate 1s infinite linear;-webkit-animation:rotate 1s infinite linear;}
        @keyframes rotate{
            0%{transform:rotate(0deg);}
            100%{transform:rotate(360deg);}
        }
        @-webkit-keyframes rotate{
            0%{-webkit-transform:rotate(0deg);}
            100%{-webkit-transform:rotate(360deg);}
        }
    </style>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script>

    $(function(){

        var $img = $(‘img‘);
        var num = 0;
        $img.each(function(i){
            var oImg = new Image();
            oImg.onload  = function(){
                oImg.onload = null;//避免重复请求
                $(‘.loading b‘).html( parseInt(num/ $img.length*100)+‘%‘);

                num++;
                if(num>= i){
                    $(‘.loading‘).fadeOut();
                }
            }
            oImg.src = $img[i].src;
        })
    })

    </script>
</head>
<body>
    <div class="loading">
        <div class="icon">
            <span></span>
            <b>0%</b>
        </div>
    </div>

    <img src="http://e.hiphotos.baidu.com/zhidao/pic/item/38dbb6fd5266d016bdeb8e0a932bd40735fa3525.jpg" >
    <img src="http://f.hiphotos.baidu.com/zhidao/pic/item/902397dda144ad3464639dc8d1a20cf430ad85a4.jpg" >
    <img src="http://attach.bbs.miui.com/forum/201605/11/163127pv36vrzvj7ggz8u4.jpg" >
    <img src="http://img.pconline.com.cn/images/upload/upc/tx/wallpaper/1302/04/c0/17981969_1359970249179.jpg" >
    <img src="http://img2.imgtn.bdimg.com/it/u=1691627983,2796098531&fm=27&gp=0.jpg" >
    <img src="http://a.hiphotos.baidu.com/zhidao/pic/item/78310a55b319ebc49ff591188026cffc1f1716a5.jpg" >
    <img src="http://img2.imgtn.bdimg.com/it/u=3628218818,2760659836&fm=27&gp=0.jpg" >
    <img src="http://img3.imgtn.bdimg.com/it/u=3373860863,3150615791&fm=214&gp=0.jpg" >
    <img src="http://img.pconline.com.cn/images/upload/upc/tx/wallpaper/1302/04/c0/17981969_1359970249174.jpg" >
    <img src="http://2t.5068.com/uploads/allimg/151028/57-15102QP537.jpg" >
    <img src="http://d.hiphotos.baidu.com/zhidao/pic/item/6c224f4a20a44623aa0705099b22720e0df3d788.jpg" >

</body>
</html>

原文地址:https://www.cnblogs.com/itdansan/p/8419866.html

时间: 2024-11-08 19:27:14

页面加载和图片加载loading的相关文章

图片预加载 解决图片加载闪动问题

方法一: 1 <script type="text/javascript"> 2 var img01 = new Image(); 3 var img02 = new Image(); 4 var img03 = new Image(); 5 var img04 = new Image(); 6 img01.src = "img/1.jpg"; 7 img02.src = "img/2.jpg"; 8 img03.src = &quo

浏览器渲染的工作流程和图片加载与渲染规则

1 浏览器渲染的工作流程 浏览器的工作原理.以Webkit引擎的工作流程为例,浏览器加载一个HTML页面后进行如下操作 解析HTML[遇到<img>标签加载图片] -> 构建DOM树 加载样式 -> 解析样式[遇到背景图片链接不加载] -> 构建样式规则树 加载javascript -> 执行javascript代码 把DOM树和样式规则树匹配构建渲染树[加载渲染树上的背景图片] 计算元素位置进行布局 绘制[开始渲染图片] 2 图片加载与渲染规则  页面中不是所有的&l

Android图片加载库的封装实战之路

前言 主流图片加载库的对比 Android-Universal-Image-Loader Picasso Glide Fresco 按需选择图片加载库 如何更好地封装图片加载库 为什么要封装 使用策略模式封装图片加载策略 源码地址 部分参考链接 前言 图片加载是Android开发中最最基础的功能,为了降低开发周期和难度,我们经常会选用一些图片加载的开源库 选取第三方SDK需要谨慎 二次封装 主流图片加载库的对比 共同点 使用简单:一句话实现图片的获取和显示 可配置性高:可配置各种解码.缓存.下载

JQuery图片加载显示loading和加载失败默认图片

在很多时候我们需要用到图片加载功能,在网上搜资料后就想为了以后使用方便重新整理了下,结果如图: 最后一张是加载失败显示的图片,没找到合适的图片,先用他顶替. 页面引用 <div class="container"> <div class="row block" id="img-list"> <div class="col-md-3"> <img src="/Assets/On

页面第一次加载实现图片淡入方式加载

页面第一次加载实现图片淡入方式加载:图片以淡入方式加载总是让人感觉有一种动态的感觉,可以让用户体验更好,下面就简单介绍一下如何实现此效果.当页面加载的时候,让加载好的图片先隐藏,然后再使用fadeIn()函数实现图片的淡入效果,参考代码如下: <script type="text/javascript"> $("#load img").load(function() { $(this).hide(); $(this).fadeIn("5000&

页面加载时让其显示笼罩层与加载等待图片

页面加载时让其显示笼罩层与加载等待图片(结局比较完美,过程很坎坷,所以一定总结整理下,备用): 用了ajax异步,是因为js内容不能即时的显示出来,因为js是单线程,要把队列中的任务执行完后才会执行刚才对js的处理 要用beforeSend,complete的时候必须要用ajax异步 beforeSend: function () {},//程序一开始便会执行该函数,使用该方法必须使用异步ajax complete: function () {},//complete在success或error

javascript页面滚动图片加载

图片量越来越大,网页加载不堪重负.还是得用lazyload... 实现要点:页面绑定滚动事件:加载页面的时候把地址放于一个属性中:在滚动过程中判断元素是否进入显示的区域内:加载图片. 主要相关问题:浏览器兼容,如获取浏览器可见部分的宽度: window.innerHeight || document.documentElement.clientHeight 获得页面相对可见部分的左上角的竖直方向的坐标: window.pageYOffset || window.document.document

layer iframe加载单个图片或者加载页面

加载单个图片 layer.open({ type: 1, title: false, closeBtn: 0, area: '150px', skin: 'layui-layer-nobg', //没有背景色 shadeClose: true, content: imgurl }); 加载单个页面 layer.open({ type: 2, title: phone, shadeClose: true, shade: 0.8, area: ['180px', '210px'], content:

Viewpager图片自动轮播,网络图片加载,图片自动刷新

package com.teffy.viewpager; import java.util.ArrayList; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import android.annotation.SuppressLint; import android.app.Act