pc弹框插件:http://aui.github.io/artDialog/doc/index.html#quickref-bubble
PC端,手机端,layui很好用,分页啥的:http://www.layui.com/demo/
手机弹框插件:
小弹框:
<div id="message" class=""><p id="msgTxt"></p></div> function message(message){ //加蒙层,和大弹框一致,可以单独设计 // $("body").append("<div class='md-modal-overlay show' id='nyale'></div>"); var timer; var ele = $( "#message" ).addClass( "show" ); $( "#msgTxt" ).html( message ); clearTimeout( timer ); timer = setTimeout( function() { ele.removeClass( "show" ); //小弹框关闭,蒙层撤销 // $("#nyale").remove(); }, 3000 ); } message("网络开小差,请稍后再试") /*小弹框*/ #message{ 9.55rem; height: 3.1rem; /*line-height: 1.55rem;*/ bottom: 50%; border-radius: 1px; padding: 1em 1em; font-size: .9em; color: #fff; z-index: 99; box-shadow: 0 1px 14px rgba(0,0,0,.24); /*white-space: nowrap;*/ opacity: 0; visibility: hidden; /*-webkit-transition: opacity .2s;*/ /*transition: opacity .2s;*/ -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); text-align: center; font-size: 16px; border-radius: 6px; } #message.show { visibility: visible; opacity: 1; } #loading, #message { position: fixed; background: rgba(0,0,0,.6); left: 50%; } #msgTxt{ line-height:1.55rem; height: 3.1rem; } .show { display: block!important; } /*小弹框结束*/ //蒙层 .md-modal-overlay { position: fixed; top: 0; left: 0; 100%; height: 100%; background: rgba(70,60,60,.5); opacity: 0; visibility: hidden; z-index: 99; -webkit-transition: all .3s; transition: all .3s } .md-modal-overlay.blank,.md-modal-overlay.show { opacity: 1; visibility: visible } .md-modal-overlay.blank { background: 0 0 }
大弹框
<modal id="modal_fellSorry"> <div style=" 13.45rem;height: 7.6rem;background-color: #fff;overflow: hidden;border-radius: 0.1rem;"> <img src="/cn.dingyueWeb.reader/activity/imgs/imh10qm_meiqiangdao_top.png" style=" 9.3rem;height: 4.05rem;display: block;margin:0.75rem auto;"> <img src="/cn.dingyueWeb.reader/activity/imgs/imh10qm_meiqiangdao_btn.png" style=" 4.725rem;height: 1.05rem;display: block;margin:0 auto;" class="okok"> </div> </modal> <modal id="modal_getSuccess"> <div style=" 13.45rem;height: 7.6rem;background-color: #fff;overflow: hidden;border-radius: 0.1rem;"> <img src="/cn.dingyueWeb.reader/activity/imgs/img11_qiangdaole_top.png" class="qgl_top"> <p style="margin-bottom: 0.75rem;text-align: center;color:#2d2dfd;" id="getSuccessTxt">抢到了!书券已放入账户</p> <img src="/cn.dingyueWeb.reader/activity/imgs/imh10qm_meiqiangdao_btn.png" style=" 4.725rem;height: 1.05rem;display: block;margin:0 auto;" class="okok"> </div> </modal> function fellSorry(){ $.modal({ showTitle: false, class4modal: "modal-confirm", animation: "scale", render: function(ready, close) { this.html($("#container").find("#modal_fellSorry").html()); this.delegate(".okok", "click touch", function(e) { close(); //关闭弹窗显示已抢光 $("#qiangGuangle").show(); $("#guize").hide(); $("#lingqu").hide(); $("#yiguoqi").hide(); }) .delegate(".nono", "click touch", close); } }); } function getSuccess(val){ $.modal({ showTitle: false, class4modal: "modal-confirm", animation: "scale", render: function(ready, close) { $("#getSuccessTxt").html("抢到了!"+val+"书券已放入账户"); this.html($("#container").find("#modal_getSuccess").html()); this.delegate(".okok", "click touch", function(e) { /*var webUrl = window.J_search.buildPurchaseAjaxUrl("/${packageName}/v3/recommend/payBook.do?params=1"); window.title = '精选'; window.location.href = webUrl;*/ close(); window.location.reload(); }) .delegate(".nono", "click touch", close); } }); }
大弹框css
modal { display: none } .md-modal { position: fixed; top: 50%; left: 50%; height: auto; min-width: 240px; max-width: 90%; max-height: 90%; -webkit-backface-visibility: hidden; backface-visibility: hidden; z-index: 100; transform: translateX(-50%) translateY(-50%); -webkit-transform: translateX(-50%) translateY(-50%); -ms-transform: translateX(-50%) translateY(-50%); -moz-transform: translateX(-50%) translateY(-50%); font-size: .7rem; /* 50%*/ } .md-modal .md-progress .md-progress-spinner { top: 54px; right: 14px } .md-modal>div { position: relative; margin: 0 auto; background: #fff; overflow: hidden } .md-modal-head { margin: 0; padding: 16px 16px 16px 24px; font-size: 17px; font-weight: 300; text-align: left; color: #fff; background: #01a1df; opacity: 1 } .md-modal-content { max-height: 480px; padding: 24px; overflow: auto } .md-modal-body { position: relative; overflow: hidden } .md-modal-action { min-height: 52px; padding: 0 24px; margin-bottom: 0; line-height: 52px; border-top-color: rgba(0,0,0,.12); overflow: hidden } .md-modal-close { position: absolute; top: 15px; right: 20px; border: none; font-size: 24px; color: #eee; cursor: pointer; z-index: 100; -webkit-transition: .2s; transition: .2s } .md-modal-close:hover { color: #48cfad; -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg) } .md-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(70,60,60,.5); opacity: 0; visibility: hidden; z-index: 99; -webkit-transition: all .3s; transition: all .3s } .md-modal-overlay.blank,.md-modal-overlay.show { opacity: 1; visibility: visible } .md-modal-overlay.blank { background: 0 0 } .md-modal-animation-bottom-slide>div,.md-modal-animation-bottom>div,.md-modal-animation-fadein>div,.md-modal-animation-flip>div,.md-modal-animation-scale>div,.md-modal-animation-sign>div,.md-modal-animation-slide>div,.md-modal-animation-stick>div,.md-modal-animation-vertical>div { opacity: 0; -webkit-transition: all .3s; transition: all .3s } .md-modal-animation-bottom-slide.show>div,.md-modal-animation-bottom.show>div,.md-modal-animation-fadein.show>div,.md-modal-animation-flip.show>div,.md-modal-animation-scale.show>div,.md-modal-animation-sign.show>div,.md-modal-animation-slide.show>div,.md-modal-animation-stick.show>div,.md-modal-animation-vertical.show>div { opacity: 1; visibility: visible } .md-modal-animation-bottom-slide { top: auto; bottom: 0; left: 0; -webkit-transform: none; -ms-transform: none; transform: none } .md-modal-animation-bottom-slide>div { -webkit-transform: translateY(30%); -ms-transform: translateY(30%); transform: translateY(30%) } .md-modal-animation-bottom-slide.show>div { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0) } .md-modal-animation-slide>div { -webkit-transform: translateY(30%); -ms-transform: translateY(30%); transform: translateY(30%) } .md-modal-animation-slide.show>div { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0) } .md-modal-animation-scale>div { -webkit-transform: scale(.4); -ms-transform: scale(.4); transform: scale(.4) } .md-modal-animation-scale.show>div { -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); border-radius: 0.25rem; } .md-modal-animation-fadein { overflow: hidden } .md-modal-animation-fadein>div { visibility: hidden; opacity: .4 } .md-modal-animation-fadein.show>div { visibility: visible; opacity: 1 } .md-modal-animation-stick { top: 0; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%) } .md-modal-animation-stick>div { -webkit-transform: translateY(-200%); -ms-transform: translateY(-200%); transform: translateY(-200%) } .md-modal-animation-stick.show>div { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0) } .md-modal-animation-flip { -webkit-perspective: 1300px; perspective: 1300px } .md-modal-animation-flip>div { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-transform: rotateY(-70deg); transform: rotateY(-70deg) } .md-modal-animation-flip.show>div { -webkit-transform: rotateY(0); transform: rotateY(0) } .md-modal-animation-vertical { -webkit-perspective: 1300px; perspective: 1300px } .md-modal-animation-vertical>div { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-transform: rotateX(-70deg); transform: rotateX(-70deg) } .md-modal-animation-vertical.show>div { -webkit-transform: rotateX(0); transform: rotateX(0) } .md-modal-animation-sign { -webkit-perspective: 1300px; perspective: 1300px } .md-modal-animation-sign>div { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-transform: rotateX(-60deg); transform: rotateX(-60deg); -webkit-transform-origin: 50% 0; -ms-transform-origin: 50% 0; transform-origin: 50% 0 } .md-modal-animation-sign.show>div { -webkit-transform: rotateX(0); transform: rotateX(0) } .md-modal-animation-bottom { -webkit-perspective: 1300px; perspective: 1300px } .md-modal-animation-bottom>div { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-transform: translateY(100%) rotateX(90deg); transform: translateY(100%) rotateX(90deg); -webkit-transform-origin: 0 100%; -ms-transform-origin: 0 100%; transform-origin: 0 100% } .md-modal-animation-bottom.show>div { -webkit-transform: translateY(0) rotateX(0); transform: translateY(0) rotateX(0) }
大弹框js
$.fn.modal = function( options ) { var template = [ "<div class='md-modal'>", "<div style='height: 100%;'>", "<div class='md-modal-head'></div><div class='icon-md-clear md-modal-close'></div>", "<div class='md-modal-body'></div>", "</div>", "</div>", "<div class='md-modal-overlay'></div>" ].join( "" ), modal = $( template ), close = function() { $( document ).off( "keyup", closeByESC ).off( "click", closeByDocument ); options.onClose(); modal.removeClass( "show" ); setTimeout( function() { modal.remove(); }, 300 ); }, closeByESC = function( e ) { 27 === e.keyCode && close(); }, closeByDocument = function( e ) { $( e.target ).hasClass( "md-modal-overlay" ) && close(); }, deferred = $.Deferred(), show = function() { var head = modal.find( ".md-modal-head" ), body = modal.find( ".md-modal-body" ), overlay = modal.last(); /** ~Head~ */ options.showTitle ? head.html( options.title ) : head.hide().next().hide(); /** ~Body~ */ if ( options.render instanceof Function ) { options.render.call( body, deferred, close ); } else { body.html( options.render ); deferred.resolve(); } modal.first().addClass( [ "md-modal-animation-" + options.animation, options.class4modal || "" ].join( " " ) ); /** Show the overlay */ overlay.addClass( options.mask ? "show" : "blank" ); /** Close the modal */ if ( options.closeByESC || options.closeByDocument ) { var trigger = $( document ).add( modal ); true === options.closeByDocument && modal.off( "click", closeByDocument ).on( "click", closeByDocument ); if ( "boolean" === typeof options.closeByESC ) { trigger.off( "keyup", closeByESC ).on( "keyup", closeByESC ); } } modal.delegate( ".md-modal-close", "click", close ); setTimeout( function() { modal.first().addClass( "show" ); }, 100 ); if ( options.draggable ) { var handle = options.draggable; head.css( "cursor", "move" ); modal.drag( function( ev, dd ) { $( this ).css( { top: dd.offsetY, left: dd.offsetX, "width": modal.width(), "height": modal.height(), "-webkit-transform": "none", "-moz-transform": "none", "-ms-transform": "none", "transform": "none", } ); }, { handle: handle === true ? ".md-modal-head" : handle } ); } modal.appendTo( document.body ); }; options = $.extend( {}, $.fn.modal.defaults, options || {} ); if ( this === $ ) { options.target ? $( options.target ).on( "click", show ) : (options.autoShow && show()); /** Use a dom as trigger */ } else this.on( "click", show ); return { open: show, close: close, $node: modal }; }; $.fn.modal.defaults = { title : "Modal", showTitle : true, mask : true, draggable : false, class4modal : "", closeByESC : true, closeByDocument : false, animation : "slide", render : "", autoShow : true, onClose : $.noop || new Function() }; /** Export to $ */ $.modal = $.fn.modal;