zoukankan      html  css  js  c++  java
  • 【原生JS】制作网页头部刷新进度条

    之前的某次番啬看到油管上有这么一个进度条,当时觉得挺好玩,一直想着做一个试试,刚才弄了一下写了一个不算太好看的简陋版本,哈哈。

    (本博客刷新会头部会出现,因为并没有真正的参与到浏览器加载是否完整这个渲染过程中来,所以只是一个表象,并不是说这个显示完了就浏览器也加载完了所以资源。)

    效果图:

    先看下html:

    就两个标签

            <div id="barbg">
                <div id="bar">
                </div>
            </div>

    CSS:

    布局也很简单  < overflow-x > 禁止横向滚动条出现,在JS中添加个窗口事件再启用 

            <style>
                *{margin:0;padding:0;}
             body{overflow-x:hidden;}
                #barbg{height:5px; background:rgb(149,143,143)}
                #barbg div{width:0; height:5px; 
                background:rgb(230,10,10);}
            </style>

    JS

    然后原生JS的话就是这样了

            <script>
                document.onreadystatechange = function(){
                    var bar = document.getElementById('bar');
                    var barbg = bar.parentNode;
                    var wd = document.body.scrollWidth || document.documentElement.scrollWidth;
                    var t  = 10;
                    var d = 0;
                    var i = 0;
                    var timer = setInterval(goto,10);
                    function goto(){
                        d = d + t ;
                        bar.style.width = d + 'px';
                        if(d >= wd){
                            clearInterval(timer);
                            bar.style.background = 'rgba(230,10,10,0)';
                            none();
                        }
                    }
                    function none(){
                        var a = 10 - i;
                        i++;
                        if(a != 0 && a != 10){a = a * 0.1}
                        if(a === 10){a = 1}
                        if(a === 0){a = 0}
                        barbg.style.background = 'rgba(230,10,10,' + a.toFixed(1) + ')';
                        if(a === 0){barbg.style.display = 'none'}
                        if(a != 0){setTimeout(none,50);}
                    }
    
                }
        
                       window.onresize = function(){
                           document.body.setAttribute('style','overflow-x: auto');
                        });
    
            </script>
    转载请指明出处!
  • 相关阅读:
    我的软考之路
    VB成员函数集锦
    关于软件维护问题的几点思考
    element样式调整用到的东西
    JS实现旋转的魔方
    关于echarts 重绘/图表切换/数据清空
    CSS3 @keyframes 实现匀速旋转魔方(搬运工)
    在vue的js文件引入自定义js文件
    记录 vue+element树节点的标注
    echarts 设置图例文本不可点击
  • 原文地址:https://www.cnblogs.com/GruntFish/p/6716402.html
Copyright © 2011-2022 走看看