ys_confirmation.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | .ys-confirmation{ position : fixed ; left : 0 ; right : 0 ; top : 0 ; bottom : 0 ; display : none ; background-color :rgba( 0 , 0 , 0 , 0.4 ); z-index : 99999 ; } .ys-confirmation .ys-confirmation-content{ position : absolute ; left : 30px ; right : 30px ; top : 50% ; display : block ; background-color : #fff ; margin : auto ; border-radius: 8px ; padding-bottom : 51px ; box-sizing: border-box; } .ys-confirmation .ys-confirmation-content .ys-confirmation-message{ color : #222 ; line-height : 20px ; font-size : 14px ; text-align : center ; padding : 25px 15px ; } .ys-confirmation .ys-confirmation-content .ys-confirmation-btn-group{ position : absolute ; left : 0 ; right : 0 ; bottom : 0 ; display : block ; width : 100% ; height : 51px ; border-top : 1px solid #e5e5e5 ; } .ys-confirmation .ys-confirmation-content .ys-confirmation-btn-group a{ position : absolute ; top : 0 ; bottom : 0 ; display : block ; width : 50% ; height : 50px ; line-height : 50px ; text-align : center ; font-size : 17px ; color : #ff7920 ; } .ys-confirmation .ys-confirmation-content .ys-confirmation-btn-group a.ys-confirmation-cancel-btn{ left : 0 ; } .ys-confirmation .ys-confirmation-content .ys-confirmation-btn-group a.ys-confirmation-ok-btn{ right : 0 ; border-left : 1px solid #e5e5e5 ; font-weight : bold ; } |
ys_confirmation.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | ( function ($){ var container = null ; var currentCallback = null ; var html = "<div class='ys-confirmation'> " + " <div class='ys-confirmation-content'> " + " <div class='ys-confirmation-message'></div>" + " <div class='ys-confirmation-btn-group'> " + " <a class='ys-confirmation-cancel-btn'>取消</a> " + " <a class='ys-confirmation-ok-btn'>确定</a> " + " </div> " + " </div> " + "</div> " ; function render(){ container = $(html).appendTo( "body" ); } function show(message,callback){ currentCallback = callback; $(container).find( ".ys-confirmation-message" ).html(message); $(container).css( "visibility" , "hidden" ); $(container).show(); var popupContentHeight = parseInt($(container).find( ".ys-confirmation-content" ).css( "height" )); $(container).find( ".ys-confirmation-content" ).css({ "margin-top" :(-1)*popupContentHeight/2+ "px" }); $(container).css( "visibility" , "initial" ); } function hide(){ $(container).hide(); currentCallback = null ; } function bindEvents(){ container.on( "touchend" , ".ys-confirmation-cancel-btn" , function (e){ e.stopPropagation(); e.preventDefault(); hide(); }); container.on( "touchend" , ".ys-confirmation-ok-btn" , function (e){ e.stopPropagation(); e.preventDefault(); currentCallback(); hide(); }); } var initialized = false ; function init(){ if (initialized){ return ; } initialized = true ; render(); bindEvents(); } function showConfirmation(message,callback){ init(); show(message,callback); } var ConfirmationWidget = {}; ConfirmationWidget.showConfirmation=showConfirmation; window.ConfirmationWidget = ConfirmationWidget; })(jQuery); |
component.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <!DOCTYPE html> < html > < head lang = "en" > < meta charset = "UTF-8" > < title ></ title > < meta name = "viewport" content = "width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0" > < link rel = "stylesheet" href = "static/css/common/ys_confirmation.css" > < script src = "static/js/vendor/jquery-2.1.3.min.js" ></ script > < script src = "static/js/common/ys_confirmation.js" ></ script > </ head > < body > < input id = "confirm-btn" type = "button" value = "确认" /> < script > $("#confirm-btn").click(function(e){ e.stopPropagation(); e.preventDefault(); ConfirmationWidget.showConfirmation("确认提交?",function(){ alert("提交"); }); }); </ script > </ body > </ html > |