使用jquery制作弹出框效果
内容摘要
非常不错的国产JS弹出框插件,由前端工程师alien开发,提供多种类型的自定义对话框,使用方法简单,浏览器兼容性好,支持的弹出框模式有:
alert:普通提示(警告)对话框
confirm:询问(确认
alert:普通提示(警告)对话框
confirm:询问(确认
文章正文
非常不错的国产JS弹出框插件,由前端工程师alien开发,提供多种类型的自定义对话框,使用方法简单,浏览器兼容性好,支持的弹出框模式有:
alert:普通提示(警告)对话框
confirm:询问(确认)对话框
message:简单消息对话框(无title、无按钮)
iframe:在对话框中嵌入一个iframe
tip:带有小三角指向的小tip
dialog:最基础的自定义对话框
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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | var jDialogId = []; ( function ($) { $.jDialog = function (options) { var id = parseInt(Math. floor (Math.random() * 1000 + 1)); while ($.inArray(id, jDialogId) != -1) { id = parseInt(Math. floor (Math.random() * 1000 + 1)); } jDialogId.push(id); var defaults = { title: "" , content: "这是一个JasUI-Dialog插件" , width: 350, height: 0, timer: 0, showbuttons:false, buttons: [], okval: "确认" , ok: function () { return false;}, cancelval: "取消" , cancel: function () { return false; }, showclose:true, close: function () { }, theme: "" }; var options = $.extend(defaults, options); var _objdiv = "<div id='j-dialog-" + id + "' class='j-dialog " ; if (options.theme != "" ) { _objdiv = _objdiv + "j-dialog-" + options.theme + "'>" ; } else { _objdiv = _objdiv + "'>" ; } _objdiv = _objdiv + "<div class='j-dialog-header'>" ; if (options.showclose) { _objdiv = _objdiv + "<a href='javascript:void(0)' class='j-close j-dialog-close'></a>" } if (options.title != "" ) { _objdiv = _objdiv + "<h5 class='j-dialog-title'>" + options.title + "</h5>" ; } _objdiv = _objdiv + "</div>" ; _objdiv = _objdiv + "<p class='j-dialog-content'>" + options.content + "</p>" ; if (options.showbuttons) { _objdiv = _objdiv + "<div class='j-dialog-footer'>" ; $.each(options.buttons, function (i,value) { _objdiv = _objdiv + "<a class='j-button' data-id='" + i + "'>" + value.title + "</a>" ; }) _objdiv = _objdiv + "<a class='j-button j-button-primary j-dialog-ok'>" + options.okval + "</a>" ; _objdiv = _objdiv + "<a class='j-button j-dialog-cancel'>" + options.cancelval + "</a>" ; _objdiv = _objdiv + "</div>" ; }; _objdiv=_objdiv+ "</div>" ; $( "body" ).append(_objdiv); var _obj = $( '#j-dialog-' + id) if (options.height>0) { _obj.css( "height" , options.height); } _obj.css( "width" , options.width); _obj.css( "margin-top" , '-' + (options.height / 2) + 'px' ); _obj.css( "margin-left" , '-' + (options.width / 2) + 'px' ); _obj.animate({ top: '30%' ,opacity:1 }, 0); if (options.showclose) { _obj.find( '.j-dialog-close' ).on( 'click' , function () { $.jDialogRemove(id, options.close); }) _obj.find( '.j-dialog-ok' ).on( 'click' , function () { if (!options.ok()) { $.jDialogRemove(id, options.close); } }) _obj.find( '.j-dialog-cancel' ).on( 'click' , function () { if (!options.cancel()) { $.jDialogRemove(id, options.close); } }) } if (options.showbuttons) { $.each(options.buttons, function (i, value) { _obj.find( "[data-id=" + i + "]" ).on( 'click' , function () { if (!value.callback()) { $.jDialogRemove(id, options.close); } }) }) }; if (options.timer> 0) { setTimeout( function () { $.jDialogRemove(id,options.close); }, options.timer); } return id; }, $.jDialogRemove = function (id, callback) { if ($.inArray(id, jDialogId)!=-1) { jDialogId.splice($.inArray(id, jDialogId), 1); $( '#j-dialog-' + id).animate({ top: '0' , opacity: 0 }, 500, function () { $( '#j-dialog-' + id).remove(); if (callback) { callback(); } }); } }, $.jTip = function (options) { var defaults = { content: "这是一个JasUI-Dialog插件" , width: 200, timer: 0, showclose: false, close: function () { }, theme: "" }; var options = $.extend(defaults, options); $.jDialog(options); }, $.jFloatText = function (txt,color,posX,posY) { var $i = $( "<b>" ).text(txt); var x = '50%' , y = '40%' ; var _color = '#E94F06' ; if (color) { _color= color; } if (posX) { x = posX; } if (posY) { y = posY; } $i .css({ top: 200, left: x, position: "absolute" , color: "#E94F06" }); $( "body" ).append( $i ); $i .animate({ top: 20, opacity: 0}, 1500, function () { $i .remove(); }); } })(jQuery); |
以上所述就是本文的全部内容了,希望能够对大家熟练使用jQuery有所帮助。
代码注释