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 相关文章推荐
javascript在事件监听方面的兼容性小结
Apr 07 Javascript
js中array的sort()方法使用介绍
Feb 20 Javascript
JavaScript中的eval()函数使用介绍
Dec 31 Javascript
jQuery制作仿Mac Lion OS滚动条效果
Feb 10 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
AspNet中使用JQuery boxy插件的确认框
May 20 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 Javascript
详解vue2 $watch要注意的问题
Sep 08 Javascript
JavaScript实现快速排序的方法分析
Jan 10 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
Vue多组件仓库开发与发布详解
Feb 28 Javascript
分享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
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
js 判断 enter 事件
2009/02/12 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
python实现微信接口(itchat)详细介绍
2017/10/23 Python
python unittest实现api自动化测试
2018/04/04 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
python模块常用用法实例详解
2019/10/17 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
服装设计专业毕业生推荐信
2013/11/09 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
学生手册家长评语
2014/02/10 职场文书
商场消防演习方案
2014/02/12 职场文书
安全生产承诺书
2014/03/26 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
行政司机岗位职责
2015/04/10 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP
深入理解 Golang 的字符串
2022/05/04 Golang