JS Loading功能的简单实现


Posted in Javascript onNovember 29, 2013

我们经常在浏览网页的时候会看到数据在加载时,出现的LOADING提示。其实这个功能原理是很简单的,就是一个DIV遮盖当前页面,然后Loading就在遮盖DIV层上展示出来,现在我们来动手实现一下。

1.当前页面:

<div class="current"><a href="#" onclick="showLoading()">Loading</a></div>

2.遮罩层:
<div id="over" class="over"></div>

3.Loading展示层:
<div id="layout" class="layout"><img src="//img.jbzj.com/file_images/article/201311/2013112931.gif" alt="" /></div>

整体代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
        .current a {
            font-size: 20px;
        }
        .over {
            display: none;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #f5f5f5;
            opacity:0.5;
            z-index: 1000;
        }
        .layout {
            display: none;
            position: absolute;
            top: 40%;
            left: 40%;
            width: 20%;
            height: 20%;
            z-index: 1001;
            text-align:center;
        }
    </style>
    <script type="text/javascript">
        function showLoading()
        {
            document.getElementById("over").style.display = "block";
            document.getElementById("layout").style.display = "block";
        }
    </script>
</head>
<body>
    <div class="current"><a href="#" onclick="showLoading()">Loading</a></div>
    <div id="over" class="over"></div>
    <div id="layout" class="layout"><img src="//img.jbzj.com/file_images/article/201311/2013112931.gif" alt="" /></div>
</body>
</html>

最终效果:
JS Loading功能的简单实现

在网上还看到另外一种实现方式,感觉思路不错,就是利用JS不断的改变html标签的value值,达到加载提示的效果,根据他的思路我自己实现了下,代码如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <!-- <script src="Scripts/jquery-1.8.2.js"></script>-->
    <style type="text/css">
        #tb {
            width: 100%;
            height: 100%;
            line-height: 10px;
        }
            #tb tr td {
                text-align: center;
            }
        .progressbar {
            font-family: Arial;
            font-weight: bolder;
            color: gray;
            background-color: white;
            padding: 0px;
            border-style: none;
        }
        .percent {
            font-family: Arial;
            color: gray;
            text-align: center;
            border-width: medium;
            border-style: none;
        }
    </style>
    <script type="text/javascript">
        var bar = 0;
        var step = "||";
        /*
        *第一种方式即 :$(document).ready(function(){.....});
        */
        //$(function () {
        //    progress();
        //});
        /*
        *第二种方式 
        */
        //window.onload = function () {
        //    progress();
        //}
        /*
        *第三种方式模拟 $(document).ready(function(){.....});
        */
        (function () {
            var ie = !!(window.attachEvent && !window.opera);
            var wk = /webkit\/(\d+)/i.test(navigator.userAgent) && (RegExp.$1 < 525);
            var fn = [];
            var run = function () { for (var i = 0; i < fn.length; i++) fn[i](); };
            var d = document;
            d.ready = function (f) {
                if (!ie && !wk && d.addEventListener)
                    return d.addEventListener('DOMContentLoaded', f, false);
                if (fn.push(f) > 1) return;
                if (ie)
                    (function () {
                        try { d.documentElement.doScroll('left'); run(); }
                        catch (err) { setTimeout(arguments.callee, 0); }
                    })();
                else if (wk)
                    var t = setInterval(function () {
                        if (/^(loaded|complete)$/.test(d.readyState))
                            clearInterval(t), run();
                    }, 0);
            };
        })();
        document.ready(function () {
            progress();
        });

        function progress() {
            bar = bar + 2;
            step = step + "||";
            document.getElementById("percent").value = bar + "%";
            document.getElementById("progressbar").value = step;
            if (bar <= 98) {
                setTimeout("progress()", 100);
            }
        }
    </script>
</head>
<body>
    <table id="tb">
        <tr>
            <td>
                <input type="text" size="50" class="percent" id="percent" /></td>
        </tr>
        <tr>
            <td>
                <input type="text" size="50" class="progressbar" id="progressbar" /></td>
        </tr>
    </table>
</body>
</html>

最终效果:

JS Loading功能的简单实现

Javascript 相关文章推荐
jQuery 方法大全方便学习参考
Feb 25 Javascript
IE6 fixed的完美解决方案
Mar 31 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
Feb 19 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 Javascript
读Javascript高性能编程重点笔记
Dec 21 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
iView-admin 动态路由问题的解决方法
Oct 03 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
Jun 10 Javascript
ES6新增的数组知识实例小结
May 23 Javascript
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
分享Javascript中最常用的55个经典小技巧
Nov 29 #Javascript
浅析JavaScript中的类型和对象
Nov 29 #Javascript
JavaScript中创建类/对象的几种方法总结
Nov 29 #Javascript
转换字符串为json对象的方法详解
Nov 29 #Javascript
javascript对下拉列表框(select)的操作实例讲解
Nov 29 #Javascript
js 定时器setTimeout无法调用局部变量的解决办法
Nov 28 #Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
Nov 28 #Javascript
You might like
实例详解PHP中html word 互转的方法
2016/01/28 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
PHP实现的策略模式示例
2019/03/20 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
Python的math模块中的常用数学函数整理
2016/02/04 Python
详解python的数字类型变量与其方法
2016/11/20 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
儿童编程python入门
2018/05/08 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
医学院校毕业生自荐信范文
2014/01/01 职场文书
2014年会策划方案
2014/05/11 职场文书
岗位明星事迹材料
2014/05/18 职场文书
初中同学会活动方案
2014/08/22 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
外出考察学习心得体会
2016/01/18 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
python基础之匿名函数详解
2021/04/21 Python
Python实现位图分割的效果
2021/11/20 Python
Python装饰器的练习题
2021/11/23 Python