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 相关文章推荐
YUI 读码日记之 YAHOO.util.Dom - Part.1
Mar 22 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
Javascript中的arguments与重载介绍
Mar 15 Javascript
老生常谈Javascript中的原型和this指针
Oct 09 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
vue中element组件样式修改无效的解决方法
Feb 03 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
vue 使用自定义指令实现表单校验的方法
Aug 28 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
Sep 16 Javascript
d3.js实现图形拖拽
Dec 19 Javascript
js+canvas实现纸牌游戏
Mar 16 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
咖啡与牛奶
2021/03/03 冲泡冲煮
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
利用Python命令行传递实例化对象的方法
2016/11/02 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
我的未来不是梦演讲稿
2014/09/02 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
单位实习介绍信
2015/05/05 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang