• 基于jQuery的弹出层功能


    这个是基于jQuery的弹出层功能,是我一年半以前写的,代码不长。支持页面ID方式(页面#id内容显示)和iframe框架模式(可嵌入一个网络地址)。

    现我把全部代码贴出来,供大家参考。有任何问题,请及时评论或留言,我会和大家共进步。

    首先,把用到的css样式添加进来。代码如下:

    View Code
    1 /* 弹层控制样式 */
    2 #TB_window { font: 12px Arial, Helvetica, sans-serif; color: #333; }
    3 #TB_window a:link { color: #666; }
    4 #TB_overlay { position: fixed; z-index:10000; width:100%; height:100%; top:0; left:0; background-color:#666; filter:alpha(opacity=30); -moz-opacity:0.3; opacity:0.3;}
    5 * html #TB_overlay { /* ie6 hack */position: absolute; height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');}
    6 #TB_window { position:fixed; z-index:10002; color:#000; display:none; text-align:left; top:50%; left:50%;}
    7 * html #TB_window { /* ie6 hack */position: absolute; margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');}
    8 #TB_HideSelect { position:fixed; z-index:99; top:0; left:0; width:100%; height:100%; background-color:#FFF; border:none; filter:alpha(opacity=0); -moz-opacity:0; opacity:0; }
    9 * html #TB_HideSelect { /* ie6 hack */position: absolute; height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');}

    您可把这些css样式放到页面中或是单独放到文件中都行。

    下面贴一下js代码:

    View Code
     1 /*
     2  * msgBox 弹出层 [支持ID和框架形式]
     3  * author     yangjinjin
     4  * id         元素ID(为空可嵌入外链页面)
     5  * w          要显示的弹出层宽度
     6  * h         要显示的弹出层高度
     7  * url        外部链接地址
     8 */
     9 
    10 var msgBox = {
    11     temp:'',    
    12     show: function(options){
    13         this.pageid  = options["id"] || null;
    14         this.width   = options["w"] || 630;
    15         this.height  = options["h"] || 440;
    16         this.pageurl = options["url"] || "";
    17         
    18         try {
    19             if(typeof document.body.style.maxHeight === "undefined"){
    20                 $("body","html").css({height:"100%", "100%"});
    21                 $("html").css("overflow", "hidden");
    22                 if(document.getElementById("TB_HideSelect") === null){
    23                     $("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
    24                 }
    25             }else{
    26                 if(document.getElementById("TB_overlay") === null){
    27                     $("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
    28                 }
    29             }
    30             
    31             $(window).scroll(this.position); //实现随滚动条滚动
    32             
    33             if(this.pageurl != ""){
    34                 $("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+ this.pageurl +"' id='TB_iframeContent' name='TB_iframeContent"+ Math.round(Math.random()*1000) +"' style='"+ this.width +"px;height:"+ this.height +"px;'></iframe>");
    35             }else{
    36                 $("#TB_window").append('<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td>' + $("#" + this.pageid).html() + '</td></tr></table>');    
    37                 this.temp = '<div id="'+this.pageid +'" style="display:none;">'+ $("#" + this.pageid).html()+'</div>';
    38                 $("#" + this.pageid).remove();                
    39             }            
    40             
    41             this.position(); //设置弹出层所在位置
    42             $("#TB_window").css({display: "block"});
    43             var t = this;
    44             $(".TB_closeBtn,#TB_closeBtn").click(function(){
    45                 t.remove();
    46             });
    47         } catch(e) {
    48             throw e;
    49         }
    50     },
    51     remove: function() {
    52         $(".TB_closeBtn,#TB_closeBtn").unbind("click");
    53         if(this.temp){
    54             $("body").append(this.temp);
    55             this.temp='';
    56         }
    57         $("#TB_window,#TB_overlay,#TB_HideSelect").remove();
    58         $("body","html").css({height: "auto",  "auto"});
    59         $("html").css("overflow", "");
    60         
    61         document.onkeydown = "";
    62         document.onkeyup = "";
    63         return false;
    64     },
    65     position: function(){        
    66         $("#TB_window").css({marginLeft: "-" + parseInt((this.width / 2),10) + "px",  this.width + "px"});
    67         if(!(jQuery.browser.msie && jQuery.browser.version < 7)){ // take away IE6
    68             $("#TB_window").css({marginTop: "-" + parseInt((this.height / 2),10) + "px"});
    69         }
    70     }
    71 };

    同样的,上述代码最好单独放到一个文件中。

    那么在页面中可以这样使用:

    <script type="text/javascript">
    //这是加载页面中ID的HTML内容方式
    msgBox.show({"id": "onePageContent", "w": 518, "h": 284});
    
    //如果希望载入一个外链或URL
    msgBox.show({"url": "http://www.baidu.com", "w": 518, "h": 284});
    </script>

    如果看得不是太清楚,可以参考如下链接的使用方法:

    点击该链接下的领取新手卡

  • 相关阅读:
    Centos kernel panic-not syncing:VFS:Unable to mount root fs on unknown block 解决办法
    unknown host www.baidu.com 解决方法
    [Errno 256] No more mirrors to try 解决方法
    超级优化锁定系统重要文件防止篡改
    隐藏linux软件及内核版本
    linux内核参数注释与优化
    Linux内核参数基础优化
    ulimit linux文件配置
    history历史记录控制
    TMOUT优化终端超时
  • 原文地址:https://www.cnblogs.com/yangjinjin/p/2891394.html
Copyright © 2020-2023  润新知