JQuery+Bootstrap 自定义全屏Loading插件

Posted xinxin-csharp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery+Bootstrap 自定义全屏Loading插件相关的知识,希望对你有一定的参考价值。

 1 /**
 2  * 自定义Loading插件
 3  * @param Object config
 4  * 
 5  * content[加载显示文本],
 6  * time[自动关闭等待时间(ms)]
 7  * 
 8  * @param String config
 9  * 加载显示文本
10  * @refer 依赖 JQuery-1.9.1及以上、Bootstrap-3.3.7及以上
11  * @return KZ_Loading 对象实例
12  */
13 function KZ_Loading(config) 
14     if (this instanceof KZ_Loading) 
15         const domTemplate = ‘<div class="modal fade kz-loading" data-kzid="@@[email protected]@" 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>@@[email protected]@</h5></div></div>‘;
16         this.config = 
17             content: ‘loading...‘,
18             time: 0,
19         ;
20         if (config != null) 
21             if (typeof config === ‘string‘) 
22                 this.config = Object.assign(this.config, 
23                     content: config
24                 );
25              else if (typeof config === ‘object‘) 
26                 this.config = Object.assign(this.config, config);
27             
28         
29         this.id = new Date().getTime().toString();
30         /*显示 */
31         this.show = function() 
32             $(‘.kz-loading[data-kzid=‘ + this.id + ‘]‘).modal(
33                 backdrop: ‘static‘,
34                 keyboard: false
35             );
36             if (this.config.time > 0) 
37                 var that = this;
38                 setTimeout(function() 
39                     that.hide();
40                 , this.config.time);
41             
42         ;
43         /*隐藏 */
44         this.hide = function() 
45             $(‘.kz-loading[data-kzid=‘ + this.id + ‘]‘).modal(‘hide‘);
46         ;
47         /*销毁dom */
48         this.destroy = function() 
49             $(‘.kz-loading[data-kzid=‘ + this.id + ‘]‘).remove();
50             this.show = function() 
51                 throw new Error(‘对象已销毁!‘);
52             ;
53             this.hide = function() ;
54             this.destroy = function() ;
55         
56         var domhtml = domTemplate.replace(‘@@[email protected]@‘, this.id).replace(‘@@[email protected]@‘, this.config.content);
57         $(‘body‘).append(domHtml);
58      else 
59         return new KZ_Loading(config);
60     
61 

基本调用:

1 var loading = new KZ_Loading(‘数据加载中。。。‘);
2 setTimeout(function () 
3    console.log(‘加载完成!‘);
4    loading.hide();
5 , 1000);

自动关闭:

1 var loading = new KZ_Loading(
2     content: ‘数据加载中。。。‘,
3     time: 2000
4 );
5 loading.show();

销毁Loading Dom节点:

1 loading.destroy();

 

以上是关于JQuery+Bootstrap 自定义全屏Loading插件的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 Jquery-ui 且没有 Bootstrap 的情况下在 angularjs 中创建自定义进度条?

HTML5 视频全屏

自定义 Twitter Bootstrap 类名

Bootstrap 4 自定义轮播

HTML5 退出视频全屏

CSS/Bootstrap 3 自定义进度跟踪器