JQuery+Bootstrap 自定义全屏Loading插件的示例demo


Posted in jQuery onJuly 03, 2019

JQuery+Bootstrap 自定义全屏Loading插件

/**
 * 自定义Loading插件
 * @param {Object} config
 * {
 * content[加载显示文本],
 * time[自动关闭等待时间(ms)]
 * } 
 * @param {String} config 
 * 加载显示文本
 * @refer 依赖 JQuery-1.9.1及以上、Bootstrap-3.3.7及以上
 * @return {KZ_Loading} 对象实例
 */
function KZ_Loading(config) {
  if (this instanceof KZ_Loading) {
    const domTemplate = '<div class="modal fade kz-loading" data-kzid="@@KZ_Loadin_ID@@" backdrop="static" keyboard="false"><div style="width: 200px;height:20px; z-index: 20000; position: absolute; text-align: center; left: 50%; top: 50%;margin-left:-100px;margin-top:-10px"><div class="progress progress-striped active" style="margin-bottom: 0;"><div class="progress-bar" style="width: 100%;"></div></div><h5>@@KZ_Loading_Text@@</h5></div></div>';
    this.config = {
      content: 'loading...',
      time: 0,
    };
    if (config != null) {
      if (typeof config === 'string') {
        this.config = Object.assign(this.config, {
          content: config
        });
      } else if (typeof config === 'object') {
        this.config = Object.assign(this.config, config);
      }
    }
    this.id = new Date().getTime().toString();
    this.state = 'hide';

    /*显示 */
    this.show = function () {
      $('.kz-loading[data-kzid=' + this.id + ']').modal({
        backdrop: 'static',
        keyboard: false
      });
      this.state = 'show';
      if (this.config.time > 0) {
        var that = this;
        setTimeout(function () {
          that.hide();
        }, this.config.time);
      }
    };
    /*隐藏 */
    this.hide = function (callback) {
      $('.kz-loading[data-kzid=' + this.id + ']').modal('hide');
      this.state = 'hide';
      if (callback) {
        callback();
      }
    };
    /*销毁dom */
    this.destroy = function () {
      var that = this;
      this.hide(function () {
        var node = $('.kz-loading[data-kzid=' + that.id + ']');
        node.next().remove();
        node.remove();
        that.show = function () {
          throw new Error('对象已销毁!');
        };
        that.hide = function () {};
        that.destroy = function () {};
      });
    }

    var domHtml = domTemplate.replace('@@KZ_Loadin_ID@@', this.id).replace('@@KZ_Loading_Text@@', this.config.content);
    $('body').append(domHtml);
  } else {
    return new KZ_Loading(config);
  }
}

基本调用:

var loading = new KZ_Loading('数据加载中。。。');
setTimeout(function () {
  console.log('加载完成!');
  loading.hide();
}, 1000);

自动关闭:

var loading = new KZ_Loading({
  content: '数据加载中。。。',
  time: 2000
});
loading.show();

销毁Loading Dom节点:

 loading.destroy();

ps:下面看下基于JQUERY BOOTSTRAP 最简单的loading遮罩层

<%--loading遮罩层--%>
<div class="modal fade" id="loadingModal" backdrop="static" keyboard="false">
  <div style="width: 200px;height:20px; z-index: 20000; position: absolute; text-align: center; left: 50%; top: 50%;margin-left:-100px;margin-top:-10px">
  

<div class="progress progress-striped active" style="margin-bottom: 0;">
  


<div class="progress-bar" style="width: 100%;"></div>
  

</div>
  

<h5 id="loadText">loading...</h5>
  
</div>
</div>
<%--loading方法--%>
<script type="text/javascript">
  var loadingTime= 5;//默认遮罩时间
  showLoading = function (loadText) {
    if(!loadText){
      $("#loadText").html(loadText)
    }
    $('#loadingModal').modal({backdrop: 'static', keyboard: false});
  }
  hideLoading = function () {
    $('#loadingModal').modal('hide');
  }
</script>

总结

以上所述是小编给大家介绍的JQuery+Bootstrap 自定义全屏Loading插件的示例demo,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

jQuery 相关文章推荐
jQuery extend()详解及简单实例
May 06 jQuery
最常用的jQuery表单验证(简单)
May 23 jQuery
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 jQuery
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
jQuery属性选择器用法实例分析
Jun 28 jQuery
jQuery提示框插件SweetAlert用法分析
Aug 05 jQuery
jquery实现购物车基本功能
Oct 25 jQuery
jQuery实现朋友圈查看图片
Sep 11 jQuery
jQuery属性选择器用法实例分析
Jun 28 #jQuery
jQuery位置选择器用法实例分析
Jun 28 #jQuery
jQuery层叠选择器用法实例分析
Jun 28 #jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 #jQuery
jQuery子选择器与可见性选择器实例分析
Jun 28 #jQuery
基于jQuery的时间戳与日期间的转化
Jun 21 #jQuery
jQuery事件委托代码实践详解
Jun 21 #jQuery
You might like
php简单提示框alert封装函数
2010/08/08 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
Python 字符串中的字符倒转
2008/09/06 Python
Python 列表list使用介绍
2014/11/30 Python
python 统计代码行数简单实例
2017/05/04 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
python 6行代码制作月历生成器
2020/09/18 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
室内设计实习自我鉴定
2013/09/25 职场文书
教师年终个人自我评价
2013/10/04 职场文书
企业诚信承诺书
2014/05/23 职场文书
小组组名及励志口号
2015/12/24 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS