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实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
jquery dataTable 后台加载数据并分页实例代码
Jun 07 jQuery
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
jQuery轮播图实例详解
Aug 15 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 jQuery
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
May 27 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
第七节 类的静态成员 [7]
2006/10/09 PHP
WHOIS类的修改版
2006/10/09 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
jQuery设计思想
2017/03/07 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
详解用vue编写弹出框组件
2017/07/04 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
详解vue v-model
2020/08/31 Javascript
Python的subprocess模块总结
2014/11/07 Python
解决Python传递中文参数的问题
2015/08/04 Python
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
python实现数据图表
2017/07/29 Python
python正则实现计算器功能
2017/12/14 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
护理自荐信范文
2013/10/05 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
2014年党委工作总结
2014/11/22 职场文书
Django如何与Ajax交互
2021/04/29 Python
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android