zoukankan      html  css  js  c++  java
  • 进度条

    关于进度条的制作,终于在慕课网找到详解,看完之后收获匪浅。总结一下大神教给我的知识。

    我们通过document.onreadystatechange判断页面是否加载完。

    document.onreadystatechange  页面加载状态改变时的事件

    document.readyState                   返回当前文档的状态

    1.uninitialized-还未开始载入

    2.loading        -载入中

    3.interactive   -已加载,文档与用户可以开始交互

    4.complete     -载入完成

    1、根据css3制作加载进度条:

    根据css3制作加载进度条,通过document.onreadystatechange判断页面是否加载完,加载完毕,进度条消失。这种方法的弊端就是无法实时获取加载进度。

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>css3进度条小动画</title>
    <style>
    .loading {width: 100%;height: 100%;position: fixed;top: 0;left: 0;z-index: 100;background: #fff;}
    .loading .pic {width: 50px;height: 50px;position: absolute;top: 0;bottom: 0;right: 0;left: 0;margin: auto;}
    .loading .pic i{display: block;float: left;width: 6px;height: 50px;background: #399;margin: 0 2px;-webkit-transform: scaleY(0.4);-ms-transform: scaleY(0.4);
    transform: scaleY(0.4);-webkit-animation: load 1.2s infinite;animation: load 1.2s infinite;}
    @-webkit-keyframes load {
        0%,40%,100%{-webkit-transform:scaleY(0.4);transform:scaleY(0.4)}
        20%{-webkit-transform:scaleY(1);transform:scaleY(1)}
    }
    @keyframes load {
        0%,40%,100%{-webkit-transform:scaleY(0.4);transform:scaleY(0.4)}
        20%{-webkit-transform:scaleY(1);transform:scaleY(1)}
    }
    .loading .pic i:nth-child(1){}
    .loading .pic i:nth-child(2){-webkit-animation-delay: 0.1s;animation-delay: 0.1s}
    .loading .pic i:nth-child(3){-webkit-animation-delay: 0.2s;animation-delay: 0.2s}
    .loading .pic i:nth-child(4){-webkit-animation-delay: 0.3s;animation-delay: 0.3s}
    .loading .pic i:nth-child(5){-webkit-animation-delay: 0.4s;animation-delay: 0.4s}
    </style>
    </head>
    <body>
    
    <div class="loading">
        <div class="pic">
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
        </div>
    </div>
    
    <img src="http://s1.sinaimg.cn/mw690/001meHc5zy74TFKrPPyf0&690" alt="">
    <img src="http://img5.imgtn.bdimg.com/it/u=4043633446,3550102679&fm=200&gp=0.jpg" alt="">
    <img src="http://img0.imgtn.bdimg.com/it/u=1059486618,1562064036&fm=26&gp=0.jpg" alt="">
    
    <script src="../js/jquery.js"></script>
    <script>
        $(function () {
            document.onreadystatechange = function () {
                if (document.readyState == "complete") {
                    $(".loading").fadeOut();
                }
            }
        });
    </script>
    </body>
    </html>

    2.定位在头部的进度条

    在每个区域后面加script,从最初的0%一直显示到100%,完全是按照自上到下的加载顺序来实现这种效果。

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>定位在头部的进度条</title>
    <style>
    .loading {width: 100%;height: 100%;position: fixed;top: 0;left: 0;z-index: 100;background: #fff;}
    .loading .pic {width: 0%;height: 5px;position: absolute;top: 0;bottom: 0;background: #f33}
    </style>
    <script src="../js/jquery.js"></script>
    
    </head>
    <body>
    <div class="loading">
        <div class="pic"></div>
    </div>
    <header>
        <img src="http://s1.sinaimg.cn/mw690/001meHc5zy74TFKrPPyf0&690" alt="">
        <img src="http://img5.imgtn.bdimg.com/it/u=4043633446,3550102679&fm=200&gp=0.jpg" alt="">
        <img src="http://img0.imgtn.bdimg.com/it/u=1059486618,1562064036&fm=26&gp=0.jpg" alt="">
    </header>
    <script>
        $('.loading .pic').animate({"10%"},100);
    </script>
    <section class="banner">
        <img src="http://s1.sinaimg.cn/mw690/001meHc5zy74TFKrPPyf0&690" alt="">
        <img src="http://img5.imgtn.bdimg.com/it/u=4043633446,3550102679&fm=200&gp=0.jpg" alt="">
        <img src="http://img0.imgtn.bdimg.com/it/u=1059486618,1562064036&fm=26&gp=0.jpg" alt="">
    </section>
    <script>
        $('.loading .pic').animate({"30%"},100);
    </script>
    <section class="about">
        <img src="http://s1.sinaimg.cn/mw690/001meHc5zy74TFKrPPyf0&690" alt="">
        <img src="http://img5.imgtn.bdimg.com/it/u=4043633446,3550102679&fm=200&gp=0.jpg" alt="">
        <img src="http://img0.imgtn.bdimg.com/it/u=1059486618,1562064036&fm=26&gp=0.jpg" alt="">
    </section>
    <script>
        $('.loading .pic').animate({"50%"},100);
    </script>
    <section class="pro">
        <img src="http://s1.sinaimg.cn/mw690/001meHc5zy74TFKrPPyf0&690" alt="">
        <img src="http://img5.imgtn.bdimg.com/it/u=4043633446,3550102679&fm=200&gp=0.jpg" alt="">
        <img src="http://img0.imgtn.bdimg.com/it/u=1059486618,1562064036&fm=26&gp=0.jpg" alt="">
    </section>
    <script>
        $('.loading .pic').animate({"70%"},100);
    </script>
    <section class="news">
        <img src="http://s1.sinaimg.cn/mw690/001meHc5zy74TFKrPPyf0&690" alt="">
        <img src="http://img5.imgtn.bdimg.com/it/u=4043633446,3550102679&fm=200&gp=0.jpg" alt="">
        <img src="http://img0.imgtn.bdimg.com/it/u=1059486618,1562064036&fm=26&gp=0.jpg" alt="">
    </section>
    <script>
        $('.loading .pic').animate({"90%"},100);
    </script>
    <footer>
        <img src="http://s1.sinaimg.cn/mw690/001meHc5zy74TFKrPPyf0&690" alt="">
        <img src="http://img5.imgtn.bdimg.com/it/u=4043633446,3550102679&fm=200&gp=0.jpg" alt="">
        <img src="http://img0.imgtn.bdimg.com/it/u=1059486618,1562064036&fm=26&gp=0.jpg" alt="">
    </footer>
    <script>
        $('.loading .pic').animate({"100%"},100,function () {
            $('.loading').fadeOut();
        });
    </script>
    </body>
    </html>

    3.实时获取加载数据的进度条

    通过获取页面所有的图片,实时获取加载进度百分比,为保证兼容性,src一定要写在onload的后面,否则程序会在IE7出错。为保证流畅性,在onload事件内部先把onload事件置为null。

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>实时获取加载数据的进度条</title>
    <style>
    *{margin: 0;padding: 0}
    .loading {width: 100%;height: 100%;position: fixed;top: 0;left: 0;z-index: 100;background: #fff;}
    .loading .pic {width: 100px;height: 100px;position: absolute;top: 0;bottom: 0;right: 0;left: 0;margin: auto;font-size: 30px;text-align: center;line-height: 100px}
    .loading .pic span{display: block;width:80px;height: 80px;position: absolute;top: 10px;left: 10px;border-radius: 50%;box-shadow: 0 3px 0 #666;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>
    </head>
    <body>
    <div class="loading">
        <div class="pic">
            <span></span>
            <b>0%</b>
        </div>
    </div>
    <img src="http://s1.sinaimg.cn/mw690/001meHc5zy74TFKrPPyf0&690" alt="">
    <img src="http://img5.imgtn.bdimg.com/it/u=4043633446,3550102679&fm=200&gp=0.jpg" alt="">
    <img src="http://img0.imgtn.bdimg.com/it/u=1059486618,1562064036&fm=26&gp=0.jpg" alt="">
    <img src="http://img5.imgtn.bdimg.com/it/u=3058668829,3584059364&fm=26&gp=0.jpg" alt="">
    <img src="http://img0.imgtn.bdimg.com/it/u=1870203556,2400775406&fm=200&gp=0.jpg" alt="">
    <img src="http://img0.imgtn.bdimg.com/it/u=3345613708,3746168634&fm=200&gp=0.jpg" alt="">
    <img src="http://img5.imgtn.bdimg.com/it/u=3336150276,669541811&fm=26&gp=0.jpg" alt="">
    <img src="http://img2.imgtn.bdimg.com/it/u=4000700326,1190583608&fm=26&gp=0.jpg" alt="">
    <img src="http://img0.imgtn.bdimg.com/it/u=2010293466,2543411560&fm=200&gp=0.jpg" alt="">
    <script src="../js/jquery.js"></script>
    <script>
        $(function () {
            var img=$("img");
            var num = 0;
            img.each(function (i) {
                var oImg = new Image();
                oImg.onload=function () {
                    oImg.onload=null;
                  num++;
                  $(".loading b").html(parseInt(num/$("img").size()*100)+"%");
                  if(num>=i){
                      $(".loading").fadeOut();
                  }
                };
                oImg.src = img[i].src;
            })
        });
    </script>
    </body>
    </html>

    慕课网关于进度条部分的观看地址:http://www.imooc.com/learn/858。老师的声音像播报员,很好听,哈哈哈。

  • 相关阅读:
    每周总结(第九周)
    每周总结(第七周)
    每周总结(第六周)
    成功案例和第五周总结
    结对编程和第四周总结
    每周总结(第三周)
    node.js爬取图片
    机器学习15 手写数字识别-小数据集
    机器学习13 14 深度学习-卷积
    机器学习12 垃圾邮件分类2(13)
  • 原文地址:https://www.cnblogs.com/winteronlyme/p/7245489.html
Copyright © 2011-2022 走看看