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插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
使用jQuery实现简单的tab框实例
Aug 22 jQuery
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
Jun 10 jQuery
jquery将json转为数据字典的实例代码
Oct 11 jQuery
jQuery实现弹出层效果
Dec 10 jQuery
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
jquery插件实现代码雨特效
Apr 24 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获取网站域名和地址的代码
2008/08/17 PHP
PHP 采集心得技巧
2009/05/15 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
javascript实现延时显示提示框效果
2017/06/01 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
Python中多线程及程序锁浅析
2015/01/21 Python
点球小游戏python脚本
2018/05/22 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
python进阶之自定义可迭代的类
2019/08/20 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
优秀班集体事迹材料
2014/12/25 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
护士心得体会范文
2016/01/25 职场文书
心得体会格式及范文
2016/01/25 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript