popUp 弹出框插件 整站通用

升级了之前的popUp插件,修复了之前版本的多个性能和兼容问题,本版本兼容IE6-9,firefox,chrome ……

[点击下载]

js代码:

  1 /*
  2 author : zhupinglei_zjnb@163.com
  3 desc : popUp.js
  4 data : 2012/7/19
  5 dependon : jquery-1.7.js
  6 verson : 3.0
  7 */
  8 (function($){
  9     function _popUp(here,options,index){
 10         var _this = this;
 11         _this.$e = $(here);
 12         _this.opts = options;
 13         _this.index = index;
 14         _this.init();
 15     }
 16     _popUp.prototype = {
 17         init : function(){
 18             var _this = this;
 19             //弹出框代码
 20             var code = '<div id="popup_mask"></div>'+
 21                         '<div id="popup">' +
 22                             '<h3 class="popup_title"><span>'+_this.opts.title+'</span><i class="closeBtn" title="关闭">X</i></h3>' +
 23                             '<div class="popup_con">'+_this.opts.content+'</div>' +
 24                             '<div class="btn"><span class="submitBtn">确定</span><span class="closeBtn">取消</span></div>' +
 25                         '</div>';
 26             $('body').append(code);
 27             if($.browser.msie && ($.browser.version == 6.0)){
 28                 $('#popup_mask').css({'height':$(window).height() + 'px'});
 29             }
 30             $('#popup').css({
 31                 'width' : _this.opts.width+'px',
 32                 'height' : _this.opts.height+'px'
 33             });
 34             _this.position();
 35             $(window).resize(function(){
 36                 _this.position();
 37             });
 38             _this.event();
 39         },
 40         event : function(){
 41             var _this = this;
 42             $('#popup').on('click','.submitBtn',function(){
 43                 _this.closePopup();
 44                 _this.opts.callback();
 45             });
 46             $('#popup').on('click','.closeBtn',function(){
 47                 _this.closePopup();
 48             });
 49         },
 50         position : function(){
 51             var showLeft = ( $(window).width() - $('#popup').width() )/2 + 'px',
 52                 showHeight = ( $(window).height() - $('#popup').height() )/2 - 20 + 'px';
 53             $('#popup').css({
 54                 'left' : showLeft,
 55                 'top' : showHeight
 56             });
 57         },
 58         closePopup : function(){
 59             $('#popup_mask').remove();
 60             $('#popup').remove();
 61         }
 62     }
 63     $.fn.popUp = function(options){
 64         var opts = $.extend({},$.fn.popUp.defaults,options);
 65         return this.each(function(index){
 66             this.popUp = new _popUp(this,opts,index);
 67         });
 68     }
 69     $.alert = function(width,title,content){
 70         var code = '<div id="popup_mask"></div>'+
 71                     '<div id="popup">' +
 72                         '<h3 class="popup_title">'+title+'</h3>' +
 73                         '<div class="popup_con">'+content+'</div>' +
 74                         '<div class="btn"><span class="submitBtn">确定</span></div>' +
 75                     '</div>';
 76         $('body').append(code);
 77         if($.browser.msie && ($.browser.version == 6.0)){
 78             $('#popup_mask').css({'height':$(window).height() + 'px'});
 79         }
 80         $('#popup').css({'width' : width});
 81         function position(){
 82              var showLeft = ( $(window).width() - $('#popup').width() )/2 + 'px',
 83                 showHeight = ( $(window).height() - $('#popup').height() )/2 - 20 + 'px';
 84             $('#popup').css({
 85                 'left' : showLeft,
 86                 'top' : showHeight
 87             });
 88         }
 89         position();
 90         $(window).resize(function(){
 91             position();
 92         });
 93        
 94         $('#popup').on('click','.submitBtn',function(){
 95             $('#popup_mask').remove();
 96             $('#popup').remove();
 97         });
 98     }
 99     $.fn.popUp.defaults = {
100         width : 200,
101         height : 150,
102         title : '标题',
103         content : '<a href="#1">内容</a>',
104         callback : function(){}
105     }
106 })(jQuery);

css:

1 /**弹出框css**/
2  #popup_mask{width:100%; height:100%; background:#000; position:absolute; top:0px; left:0px; z-index:10; opacity: 0.3; filter:alpha(opacity=30); -moz-opacity:0.3; -khtml-opacity:0.3;}
3  #popup{border:1px solid #99c; position:absolute; left:0; top:0; z-index:9999; background:#fff;}
4  #popup h3{padding:10px; border-bottom:1px solid #99c; background: #33c; color:#fff; position:relative;}
5  #popup h3 i{display:block; position: absolute; font-style:normal; font-family: '黑体'; font-weight: normal; font-size: 14px; right:10px; top:10px; cursor: pointer;}
6  #popup .popup_con{margin:10px;}
7  #popup .btn{width:100%; text-align:right; padding:10px 0; position:absolute; bottom:-34px; left:-1px; background: #fff; border:1px solid #99c;}
8  #popup .btn span{ padding:5px 10px; background:#99c; color:#fff; cursor:pointer;margin-right:10px; background: #33c;}

用例:

 1 <body>
 2 <div class="button">click me</div>
 3 </body>
 4 <script type="text/javascript">
 5 $(document).ready(function(){
 6     $.alert('200px','消息框','Are you ready?');
 7     $('.button').click(function(){
 8         $(this).popUp({
 9              width : 400,
10              height : 200,
11              title : '标题',
12              content : '<div class="test">我的内容!</div>',
13              callback : function(){
14                 $.alert('200px','消息框','这是回调函数!');  //宽度,标题,内容
15              }
16          }); 
17     });
18  });
19 </script>

以上~

posted @ 2012-07-19 20:59  妙計出自山人  阅读(2134)  评论(1编辑  收藏  举报