博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mui扩展插件mui.showLoading加载框
阅读量:6095 次
发布时间:2019-06-20

本文共 3723 字,大约阅读时间需要 12 分钟。

写在前面:

好像mui目前dialog系列唯独缺少showLoading加载框(加载中)组件,为了统一组件样式和体验,写了这么一个扩展插件。
CSS和JS代码耦合性应该还是较低的,不妥之处欢迎指教!
优点:可以同时兼容Html5和plus,不必为不同环境单独分别Loading组件。
缺点:在页面嵌套情况下,遮罩仅对当前页面起作用。

使用方法:

显示加载框:

mui.showLoading("正在加载..","div"); //加载文字和类型,plus环境中类型为div时强制以div方式显示复制代码

隐藏加载框:

mui.hideLoading(callback);//隐藏后的回调函数复制代码

注意:

加载框只会显示一个,多次调用showLoading只会显示最后一次调用的内容。

Javascript代码:

//扩展mui.showLoading(function($, window) {    //显示加载框    $.showLoading = function(message,type) {        if ($.os.plus && type !== 'div') {            $.plusReady(function() {                plus.nativeUI.showWaiting(message);            });        } else {            var html = '';            html += '';            html += '

' + (message || "数据加载中") + '

'; //遮罩层 var mask=document.getElementsByClassName("mui-show-loading-mask"); if(mask.length==0){ mask = document.createElement('div'); mask.classList.add("mui-show-loading-mask"); document.body.appendChild(mask); mask.addEventListener("touchmove", function(e){e.stopPropagation();e.preventDefault();}); }else{ mask[0].classList.remove("mui-show-loading-mask-hidden"); } //加载框 var toast=document.getElementsByClassName("mui-show-loading"); if(toast.length==0){ toast = document.createElement('div'); toast.classList.add("mui-show-loading"); toast.classList.add('loading-visible'); document.body.appendChild(toast); toast.innerHTML = html; toast.addEventListener("touchmove", function(e){e.stopPropagation();e.preventDefault();}); }else{ toast[0].innerHTML = html; toast[0].classList.add("loading-visible"); } } }; //隐藏加载框 $.hideLoading = function(callback) { if ($.os.plus) { $.plusReady(function() { plus.nativeUI.closeWaiting(); }); } var mask=document.getElementsByClassName("mui-show-loading-mask"); var toast=document.getElementsByClassName("mui-show-loading"); if(mask.length>0){ mask[0].classList.add("mui-show-loading-mask-hidden"); } if(toast.length>0){ toast[0].classList.remove("loading-visible"); callback && callback(); } }})(mui, window);复制代码

CSS代码

/*----------------mui.showLoading---------------*/.mui-show-loading {    position: fixed;    padding: 5px;    width: 120px;    min-height: 120px;    top: 45%;    left: 50%;    margin-left: -60px;    background: rgba(0, 0, 0, 0.6);    text-align: center;    border-radius: 5px;    color: #FFFFFF;    visibility: hidden;    margin: 0;    z-index: 2000;    -webkit-transition-duration: .2s;    transition-duration: .2s;    opacity: 0;    -webkit-transform: scale(0.9) translate(-50%, -50%);    transform: scale(0.9) translate(-50%, -50%);    -webkit-transform-origin: 0 0;    transform-origin: 0 0;}.mui-show-loading.loading-visible {    opacity: 1;    visibility: visible;    -webkit-transform: scale(1) translate(-50%, -50%);    transform: scale(1) translate(-50%, -50%);}.mui-show-loading .mui-spinner{    margin-top: 24px;    width: 36px;    height: 36px;}.mui-show-loading .text {    line-height: 1.6;    font-family: -apple-system-font,"Helvetica Neue",sans-serif;    font-size: 14px;    margin: 10px 0 0;    color: #fff;}.mui-show-loading-mask {  position: fixed;  z-index: 1000;  top: 0;  right: 0;  left: 0;  bottom: 0;}.mui-show-loading-mask-hidden{    display: none !important;}复制代码

预览效果:

来源:http://ask.dcloud.net.cn/article/12856

转载于:https://juejin.im/post/5bf7a57d6fb9a049f23c661e

你可能感兴趣的文章
如何使用UML(统一建模语言)画PHP类图
查看>>
execl打开linux下cvs文件乱码问题解决办法
查看>>
android当前正在运行的应用包名
查看>>
转:电源滤波电路、整流电源滤波电路分析
查看>>
我的友情链接
查看>>
Hadoop集群搭建的无密登录配置
查看>>
angular使directive让div contenteditable & ng-model生效
查看>>
制作CentOS 6.4 U盘启动安装盘
查看>>
Java try、catch、finally及finally执行顺序详解
查看>>
children childNodes nodeType
查看>>
如何在Ubuntu 16.04上将Redis服务器设置为PHP的会话处理程序
查看>>
固态硬盘价格大跳水,再不入手又要涨了!
查看>>
css隐形的空隙(inline的坑)
查看>>
深圳美景品牌策划机构:美景“快传播”赢得法国最大乳业合作社赞誉
查看>>
nginx服务
查看>>
Android中使用自定义的字体
查看>>
linux 中文件类型和颜色的区分
查看>>
cocosPods 常见使用步骤
查看>>
对你同样重要的非技术贴,8个方法让你的老板认可你
查看>>
MLP、RBF、SVM神经网络比较
查看>>