当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
22 Star 75 Fork 21

TerryZ / bDialog
暂停

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
b.dialog.min.js 19.46 KB
一键复制 编辑 原始数据 按行查看 历史
+function(g){var e=function(a,b){this.options=b;this.$body=g(document.body);this.$element=g(a);this.$dialog=this.$element.find(".modal-dialog");this.$backdrop=null;this.isShown=null;this.originalBodyPad=null;this.scrollbarWidth=0;this.ignoreBackdropClick=false;if(this.options.remote){this.$element.find(".modal-content").load(this.options.remote,g.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))}};e.VERSION="3.3.7";e.TRANSITION_DURATION=300;e.BACKDROP_TRANSITION_DURATION=150;e.DEFAULTS={backdrop:true,keyboard:true,show:true};e.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)};e.prototype.show=function(a){var c=this;var b=g.Event("show.bs.modal",{relatedTarget:a});this.$element.trigger(b);if(this.isShown||b.isDefaultPrevented()){return}this.isShown=true;this.checkScrollbar();this.setScrollbar();this.$body.addClass("modal-open");this.escape();this.resize();this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',g.proxy(this.hide,this));this.$dialog.on("mousedown.dismiss.bs.modal",function(){c.$element.one("mouseup.dismiss.bs.modal",function(d){if(g(d.target).is(c.$element)){c.ignoreBackdropClick=true}})});this.backdrop(function(){var d=g.support.transition&&c.$element.hasClass("fade");if(!c.$element.parent().length){c.$element.appendTo(c.$body)}c.$element.show().scrollTop(0);c.adjustDialog();if(d){c.$element[0].offsetWidth}c.$element.addClass("in");c.enforceFocus();var k=g.Event("shown.bs.modal",{relatedTarget:a});d?c.$dialog.one("bsTransitionEnd",function(){c.$element.trigger("focus").trigger(k)}).emulateTransitionEnd(e.TRANSITION_DURATION):c.$element.trigger("focus").trigger(k)})};e.prototype.hide=function(a){if(a){a.preventDefault()}a=g.Event("hide.bs.modal");this.$element.trigger(a);if(!this.isShown||a.isDefaultPrevented()){return}this.isShown=false;this.escape();this.resize();g(document).off("focusin.bs.modal");this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal");this.$dialog.off("mousedown.dismiss.bs.modal");g.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",g.proxy(this.hideModal,this)).emulateTransitionEnd(e.TRANSITION_DURATION):this.hideModal()};e.prototype.enforceFocus=function(){g(document).off("focusin.bs.modal").on("focusin.bs.modal",g.proxy(function(a){if(document!==a.target&&this.$element[0]!==a.target&&!this.$element.has(a.target).length){this.$element.trigger("focus")}},this))};e.prototype.escape=function(){if(this.isShown&&this.options.keyboard){this.$element.on("keydown.dismiss.bs.modal",g.proxy(function(a){a.which==27&&this.hide()},this))}else{if(!this.isShown){this.$element.off("keydown.dismiss.bs.modal")}}};e.prototype.resize=function(){if(this.isShown){g(window).on("resize.bs.modal",g.proxy(this.handleUpdate,this))}else{g(window).off("resize.bs.modal")}};e.prototype.hideModal=function(){var a=this;this.$element.hide();this.backdrop(function(){a.$body.removeClass("modal-open");a.resetAdjustments();a.resetScrollbar();a.$element.trigger("hidden.bs.modal")})};e.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove();this.$backdrop=null};e.prototype.backdrop=function(a){var b=this;var d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var j=g.support.transition&&d;this.$backdrop=g(document.createElement("div")).addClass("modal-backdrop "+d).appendTo(this.$body);this.$element.on("click.dismiss.bs.modal",g.proxy(function(i){if(this.ignoreBackdropClick){this.ignoreBackdropClick=false;return}if(i.target!==i.currentTarget){return}this.options.backdrop=="static"?this.$element[0].focus():this.hide()},this));if(j){this.$backdrop[0].offsetWidth}this.$backdrop.addClass("in");if(!a){return}j?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(e.BACKDROP_TRANSITION_DURATION):a()}else{if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var c=function(){b.removeBackdrop();a&&a()};g.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",c).emulateTransitionEnd(e.BACKDROP_TRANSITION_DURATION):c()}else{if(a){a()}}}};e.prototype.handleUpdate=function(){this.adjustDialog()};e.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})};e.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})};e.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a;this.scrollbarWidth=this.measureScrollbar()};e.prototype.setScrollbar=function(){var a=parseInt((this.$body.css("padding-right")||0),10);this.originalBodyPad=document.body.style.paddingRight||"";if(this.bodyIsOverflowing){this.$body.css("padding-right",a+this.scrollbarWidth)}};e.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)};e.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure";this.$body.append(a);var b=a.offsetWidth-a.clientWidth;this.$body[0].removeChild(a);return b};function h(b,a){return this.each(function(){var c=g(this);var d=c.data("bs.modal");var j=g.extend({},e.DEFAULTS,c.data(),typeof b=="object"&&b);if(!d){c.data("bs.modal",(d=new e(this,j)))}if(typeof b=="string"){d[b](a)}else{if(j.show){d.show(a)}}})}var f=g.fn.modal;g.fn.modal=h;g.fn.modal.Constructor=e;g.fn.modal.noConflict=function(){g.fn.modal=f;return this};g(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(a){var b=g(this);var d=b.attr("href");var k=g(b.attr("data-target")||(d&&d.replace(/.*(?=#[^\s]+$)/,"")));var c=k.data("bs.modal")?"toggle":g.extend({remote:!/#/.test(d)&&d},k.data(),b.data());if(b.is("a")){a.preventDefault()}k.one("show.bs.modal",function(i){if(i.isDefaultPrevented()){return}k.one("hidden.bs.modal",function(){b.is(":visible")&&b.trigger("focus")})});h.call(k,c,this)})}(window.top.jQuery.fn.modal&&typeof(window.top.jQuery.fn.modal.Constructor.VERSION)=="string"?jQuery:window.top.jQuery);(function(d){var c={dialog:'<div class="modal hide bDialog" dialog="bDialog" tabindex="-1" aria-labelledby="bDialogHeaderLabel" role="dialog" aria-hidden="true">'+'<div class="modal-dialog" role="document">'+'<div class="modal-content">'+'<div class="modal-header bDialogHeader">'+'<button type="button" class="close bDialogCloseButton" data-dismiss="modal" aria-hidden="true">×</button>'+'<button type="button" class="close maximize bDialogMaxButton" data-dismiss="modal" aria-hidden="true">□</button>'+'<h3 class="bDialogHeaderLabel"></h3>'+"</div>"+'<div class="modal-body bDialogBody"></div>'+'<div class="modal-footer bDialogFooter hide">&nbsp;</div>'+"</div></div></div>",message:'<div class="bDialogAlert"><div class="messageContent"></div>'+'<div class="bDialogButtons"><button type="button" class="btn bDialogOk"></button>'+'<button type="button" class="btn bDialogCancel"></button></div>'+"</div>",mask:'<div class="bDialogMaskContent"><div class="bDialogTimer"></div><div class="messageContent"></div></div>',toast:'<div class="bDialogToastContent"><button type="button" class="bDialogToastClose">×</button>'+'<div class="bDialogToastIcon"><i></i></div>'+'<div class="messageContent"><h3></h3><p></p></div>'+"</div>"};var e={"backdrop":"static","title":"对话框","language":"cn","width":700,"height":400,"animation":true,"dialogCloseButton":true,"dialogMaxButton":true,"closeButton":false,"scroll":true,"drag":true,"url":false,"dom":undefined,"fullWidth":false,"customClass":undefined,"show":false,"onShow":undefined,"onShowed":undefined,"onHide":undefined,"onHidden":undefined,"callback":undefined,"type":"dialog","message":undefined,"messageType":"info","position":"bottomRight","closeTime":3,"cancel":undefined};var a=function(g){this.params=this.setParam(g);this.message=null;this.setLanguage();this.buildDialog();this.timeout=null;this.callback=null;this.cancalCallback=false;this.returnData=null;this.bindEvent();this.openDialog();this.setCssStyle();this.atLast();d(this.dialog).data("bDialog",this);return this};a.version="2.1";a.prototype.setParam=function(g){return d.extend({},e,g)};a.prototype.setLanguage=function(){var h=this.params;var g={};switch(h.language){case"cn":g={titleInfo:"提示",titleWarning:"警告",titleError:"错误",titleSuccess:"成功",titleConfirm:"确认",btnOk:"确认",btnCancel:"取消",maskText:"数据加载中……"};break;case"en":g={titleInfo:"information",titleWarning:"warning",titleError:"error",titleSuccess:"success",titleConfirm:"confirmation",btnOk:"OK",btnCancel:"Cancel",maskText:"Loading……"};break;case"jp":g={titleInfo:"ヒント",titleWarning:"警告",titleError:"間違った",titleSuccess:"成功",titleConfirm:"確認",btnOk:"確認",btnCancel:"キャンセル",maskText:"データロード……"};break}this.message=g};a.prototype.buildDialog=function(){var g=this.params,r=this;var l=c.dialog;var o=d(l);var h=window.top.document.body;r.timeout=null;if(g.title){d("h3.bDialogHeaderLabel",d(o)).html(g.title)}else{d("div.bDialogHeader",d(o)).hide()}if(!g.dialogCloseButton){d("button.bDialogCloseButton",d(o)).hide()}if(!g.dialogMaxButton){d("button.bDialogMaxButton",d(o)).hide()}if(g.closeButton){d("div.bDialogFooter",d(o)).empty().append('<button class="btn btn-inverse" data-dismiss="modal" aria-hidden="true">关闭</button>');d("div.bDialogFooter",d(o)).show()}if(g.dom){var n=d(g.dom).clone(true);d("div.bDialogBody",d(o)).html(d(n).show());if(g.scroll){d("div.bDialogBody",d(o)).css("overflow-y","auto")}}else{if(g.url){var k=g.scroll?"yes":"no";var j='<iframe class="bDialogBodyFrame" frameborder="0" scrolling="'+k+'" style="width:100%;height:100%;border:0px;" src="'+g.url+'"></iframe>';d("div.bDialogBody",d(o)).html(j)}}if(g.type==="alert"){d("button.bDialogOk",o).html(this.message.btnOk);d("button.bDialogCancel",o).html(this.message.btnCancel);if(g.title!==false){var m="";switch(g.messageType){case"info":m=this.message.titleInfo;break;case"warning":m=this.message.titleWarning;break;case"error":m=this.message.titleError;break;case"success":m=this.message.titleSuccess;break;case"confirm":case"inputConfirm":m=this.message.titleConfirm;break}d("h3.bDialogHeaderLabel",o).html(m)}}if(g.type==="mask"){var i=g.message?g.message:this.message.maskText;d("div.messageContent",o).html(i);d(o).addClass("bDialogMask")}if(g.type==="toast"){d(o).addClass("bDialogToast");d(o).addClass(g.position);var q="";switch(g.messageType){case"warning":q="toastWarning";break;case"error":q="toastError";break;case"success":q="toastSuccess";break;case"info":default:q="toastInfo";break}d("div.bDialogToastContent",o).addClass(q)}if(g.fullWidth){d("div.bDialogHeader,div.bDialogBody,div.bDialogFooter",d(o)).addClass("container");d(o).addClass("fullWidth");g.width="100%"}if(g.customClass){d(o).addClass(g.customClass)}d(h).append(o);this.dialog=o};a.prototype.bindEvent=function(){var k=this.params,i=this.dialog;var g=this;var j=window.top.document.body;var h=function(){var l={"results":null};if(g.returnData){l.results=d.isArray(g.returnData)?g.returnData:[g.returnData]}return l};g.callback=function(){if(k.cancel&&d.isFunction(k.cancel)&&g.cancalCallback){k.cancel(i)}else{if(k.callback&&d.isFunction(k.callback)){k.callback(h())}}};if(k.onShow&&d.isFunction(k.onShow)){d(i).off("show.bs.modal").on("show.bs.modal",function(){k.onShow(g)})}d(i).off("shown.bs.modal").on("shown.bs.modal",function(l){l.stopPropagation();if(k.onShowed&&d.isFunction(k.onShowed)){k.onShowed(g)}if(k.animation&&!k.fullWidth){d("div.modal-content",i).addClass("bDialogOpen")}});if(k.onHide&&d.isFunction(k.onHide)){d(i).off("hide.bs.modal").on("hide.bs.modal",function(){k.onHide(g)})}d(i).off("hidden.bs.modal").on("hidden.bs.modal",function(l){l.stopPropagation();clearTimeout(g.timeout);if(d("iframe",d(i)).size()>0){d("iframe",d(i)).remove()}d(i).remove();if(d('[dialog="bDialog"]',d(j)).size()>0){d('[dialog="bDialog"]:last',d(j)).addClass("dialogInActive")}if(k.onHidden&&d.isFunction(k.onHidden)){k.onHidden(g)}if(g.callback&&d.isFunction(g.callback)){g.callback()}});if(k.dialogMaxButton){d("button.bDialogMaxButton",i).off("click.bDialog").on("click.bDialog",function(l){l.stopPropagation();g.maxWindow()})}if(k.type!=="mask"&&k.type!=="toast"&&!k.fullWidth){d(i).off("click.bDialog").on("click.bDialog",function(m){m.stopPropagation();var l=m.target||m.srcElement;if(d(l).is("div.bDialog")){d(i).removeClass("animated").removeClass("shake");setTimeout(function(){d(i).addClass("animated").addClass("shake")},0)}})}if(k.type!=="toast"){d(window.top).on("resize.bDialog",function(l){l.stopPropagation();clearTimeout(g.timeout);g.timeout=setTimeout(function(){g.rePosition()},100)})}};a.prototype.openDialog=function(){var h=this.params,g=this.dialog;d("div.modal-dialog",g).css({"width":h.width,"height":h.height});var i={backdrop:h.backdrop,show:true};if(d.type(h.keyboard)!=="undefined"){i.keyboard=h.keyboard}d(g).modal(i).removeClass("hide")};a.prototype.setCssStyle=function(){var k=this.params,h=this.dialog;var j=window.top.document.body;var l=d("div.modal-backdrop",d(j)).size();var i=1000;var g=(l-1)*20;d("div.modal-backdrop:last",d(j)).css("z-index",i+g+10);d("div.bDialog:last div.modal-content",d(j)).css("z-index",i+g+20);d("div.bDialog:last",d(j)).css("z-index",i+g+19);if(l>1){d("div.modal-backdrop:last",d(j)).css("opacity","0.1")}this.adjust();d('[dialog="bDialog"]',d(j)).removeClass("dialogInActive");d(h).addClass("dialogInActive")};a.prototype.adjust=function(){var w=this.params,z=this.dialog;var B=d("div.modal-dialog",d(z)).innerHeight();var j=w.title?d("div.bDialogHeader",d(z)).outerHeight(true):0;var v=w.closeButton?d("div.bDialogFooter",d(z)).outerHeight(true):0;var o=parseFloat(d("div.bDialogBody",d(z)).css("padding-top"));var s=parseFloat(d("div.bDialogBody",d(z)).css("padding-bottom"));var x=B-j-v;var g=80-j-v;if(x<g){x=g}var k={"height":x,"max-height":x};d("div.bDialogBody",d(z)).css(k);if(!w.dom){var n=x-o-s;var h=80-o-s;if(n<h){n=h}var i={"height":n,"max-height":n};d("iframe.bDialogBodyFrame",d(z)).css(i)}if(w.fullWidth){d(z).css("padding-right","0px")}if(w.type=="toast"){var C=d("div.modal-dialog",d(z));var q,y,u,A;if(w.position==="topRight"||w.position==="bottomRight"){y=(parseFloat(C.css("left"))-20)+"px"}if(w.position==="topLeft"||w.position==="bottomLeft"){u=(parseFloat(C.css("right"))-20)+"px"}if(w.position==="topLeft"||w.position==="topRight"){A=(parseFloat(C.css("bottom"))-25)+"px"}if(w.position==="bottomLeft"||w.position==="bottomRight"){q=(parseFloat(C.css("top"))-20)+"px"}var m={};switch(w.position){case"topLeft":m={right:u,bottom:A};break;case"topCenter":y=(d(window.top).width()-w.width-40)/2;A=d(window.top).height()-w.height-25-12;m={left:y,right:y,bottom:A};break;case"topRight":m={left:y,bottom:A};break;case"bottomLeft":m={right:u,top:q};break;case"bottomCenter":y=(d(window.top).width()-w.width-40)/2;q=d(window.top).height()-w.height-20-12;m={top:q,right:y,left:y};break;case"bottomRight":m={left:y,top:q};break}d(z).css(m)}};a.prototype.atLast=function(){var j=this.params,i=this.dialog,g=this;var h=navigator.userAgent.indexOf("MSIE")!==-1||navigator.userAgent.indexOf("Trident")!==-1;if(j.type!=="toast"){this.rePosition(0)}if(j.drag&&d.fn.draggable&&!h&&!j.fullWidth){d(i).draggable({handle:"div.bDialogHeader"})}if(j.type==="alert"){if(j.messageType==="inputConfirm"){d(".inputConfirm",i).focus()}else{d(".bDialogOk",i).focus()}}else{d(i).focus()}if(j.type==="toast"&&j.closeTime>0){setTimeout(function(){g.close()},j.closeTime*1000)}};a.prototype.close=function(j){var h=this.dialog,g=this;g.returnData=j;var i=h.data("bs.modal");if(i){i.hide()}};a.prototype.maxWindow=function(){var g=this.dialog;if(!g.max){d(g).addClass("maximize");g.max=true}else{d(g).removeClass("maximize");g.max=false}this.adjust();this.rePosition(0)};a.prototype.rePosition=function(k){var j=this.dialog,h=d(window.top).width(),l=d(window.top).height(),i=d("div.modal-dialog",d(j)).width(),m=d("div.modal-dialog",d(j)).height(),g={"left":0,"top":0,"right":h-i,"bottom":l-m,"center":(h-i)/2,"middle":(l-m)/2};j.dialog_top=g["middle"];d("div.modal-dialog",d(j)).stop(true);d("div.modal-dialog",d(j)).css("visibility","visible").animate({"top":j.dialog_top},(undefined!==d.type(k)&&d.type(k)=="number")?k:100)};var f={getDialog:function(){var g=d('[dialog="bDialog"].dialogInActive',window.top.document.body);return g?g.data("bDialog"):null},sub:function(k,l){var j=/[^\x00-\xff]/g;if(k.replace(j,"mm").length<=l){return k}var g=Math.floor(l/2);for(var h=g;h<k.length;h++){if(k.substr(0,h).replace(j,"mm").length>=l){return k.substr(0,h)+"..."}}return k}};var b={open:function(g){return new a(g)},close:function(i,h){var g,j;if(i instanceof a){j=i;g=null}else{g=i;j=h?h:f.getDialog()}if(j){j.close(g)}},getDialog:function(){return f.getDialog()},getDialogParams:function(){var g=f.getDialog();return g?g.params.params:null},alert:function(k,m,l){if(!k){return}var g=c.message;var j=d(g);var i="alertInfo";if(!l){l={}}var h=l&&l.messageType?l.messageType:"";switch(h){case"error":i="alertError";break;case"warning":i="alertWarning";break;case"success":i="alertSuccess";break;case"confirm":case"inputConfirm":i="alertConfirm";d(".bDialogCancel",j).show().on("click.bDialog",function(){var n=f.getDialog();n.cancalCallback=true;n.close()});break;case"info":default:i="alertInfo";l.messageType="info";break}d(j).addClass(i);d(".messageContent",j).html(k);if(h==="inputConfirm"){d(".messageContent",j).append('<input type="text" class="inputConfirm">');d(".inputConfirm",j).on("input",function(){if(d(this).val()){d(this).removeClass("inputRequire")}}).keydown(function(p){p.stopPropagation();var o=p.keyCode;if(o==13){var n=d(this).closest("div.bDialogAlert");d(".bDialogOk",n).trigger("click");p.preventDefault()}})}d(".bDialogOk",j).on("click.bDialog",function(p){p.stopPropagation();p.preventDefault();var q=d(this).closest("div.bDialog").data("bDialog");if(h==="inputConfirm"){var o=d(this).closest("div.bDialogAlert");var n=d(".inputConfirm",o).val();if(n){b.close(n,q)}else{d(".inputConfirm",o).addClass("inputRequire")}}else{b.close(q)}});l.dom=j;if(m&&d.isFunction(m)){l.callback=m}l.dialogCloseButton=false;l.dialogMaxButton=false;l.scroll=false;l.type="alert";l.width=k.length>70?700:450;l.height=k.length>70?400:d.type(l.title)=="undefined"||d.type(l.title)=="string"?210:180;return new a(l)},mask:function(i,j){var g=c.mask;var h=d(g);if(i){i=f.sub(i,65)}if(!j){j={}}j.title=false;j.scroll=false;j.type="mask";j.width=300;j.height=50;j.message=i;j.dom=h;j.keyboard=false;return new a(j)},toast:function(l,n){if(!l){return}var g=c.toast;var k=d(g),i="",j="",m="";l=f.sub(l,56);d(".messageContent p",k).html(l);if(!n){n={}}var h=n.messageType?n.messageType:"";switch(h){case"error":i="icon-roundclose";j="错误";break;case"warning":i="icon-warn";j="警告";break;case"success":i="icon-roundcheck";j="成功";break;case"info":default:i="icon-info";j="提示";n.messageType="info";break}if(n.title&&d.type(n.title)==="string"){m=n.title}else{if(d.type(n.title)==="undefined"){m=j}else{m=false}}if(m){d(".messageContent h3",k).html(m)}else{d(".messageContent h3",k).hide()}d("div.bDialogToastIcon i",k).addClass("iconfont "+i);if(n.dialogCloseButton===false){d("button.bDialogToastClose",k).hide()}else{d("button.bDialogToastClose",k).on("click.bDialog",function(o){o.stopPropagation();o.preventDefault();var p=d(this).closest("div.bDialog").data("bDialog");b.close(p)})}n.backdrop=false;n.dom=k;n.dialogCloseButton=false;n.dialogMaxButton=false;n.title=false;n.scroll=false;n.type="toast";n.width=300;n.height=80;return new a(n)}};if(!window.top.bDialog){window.top.bDialog=b}if(!window.bDialog){window.bDialog=b}})(window.top.jQuery);
JavaScript
1
https://gitee.com/TerryZ/bdialog.git
git@gitee.com:TerryZ/bdialog.git
TerryZ
bdialog
bDialog
master

搜索帮助