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输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
Aug 18 jQuery
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
jQuery实现上下滚动公告栏详细代码
Nov 21 jQuery
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
通过jQuery学习js类型判断的技巧
May 27 jQuery
jquery插件开发模式实例详解
Jul 20 jQuery
jquery树形插件zTree高级使用详解
Aug 16 jQuery
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
jQuery实现可以扩展的日历
Dec 01 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
js实现文字截断功能
2016/09/14 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
详解Python的循环结构知识点
2019/05/20 Python
python3实现绘制二维点图
2019/12/04 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
详解Python 最短匹配模式
2020/07/29 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
python实现计算器简易版
2020/12/17 Python
python Zmail模块简介与使用示例
2020/12/19 Python
城市规划毕业生求职信
2013/10/10 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
使用Apache Camel表达REST服务的方法
2022/06/10 Servers