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 EasyUI $.Parser
Jun 02 jQuery
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
jQuery实现的简单获取索引功能示例
Jun 04 jQuery
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
jQuery UI实现动画效果代码分享
Aug 19 jQuery
jQuery实现当拉动滚动条到底部加载数据的方法分析
Jan 24 jQuery
Vue项目中使用jquery的简单方法
May 16 jQuery
jQuery HTML css()方法与css类实例详解
May 20 jQuery
基于jQuery拖拽事件的封装
Nov 29 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学习之function的用法
2012/07/14 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
Python中获取网页状态码的两个方法
2014/11/03 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
django连接oracle时setting 配置方法
2019/08/29 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
导致python中import错误的原因是什么
2020/07/01 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
2014年班主任自我评价范文
2014/04/23 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
SQL Server中的游标介绍
2022/05/20 SQL Server