Div 作为模态 - javascript
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 
原文地址: http://stackoverflow.com/questions/4502435/
Warning: these are provided under cc-by-sa 4.0 license.  You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Div as modal - javascript
提问by ihorko
I need a JavaScript that shows hidden div on the center of the screen as modal with darked background like jquery dialog!
我需要一个 JavaScript,它在屏幕中央显示隐藏的 div 作为模态与深色背景,如 jquery 对话框!
example:
例子:
<div id='divToShow' style='display:none'>
Here is the content of the div that should be shown as modal on the center of the page!
</div>
Who can help? Thanks
谁能帮忙?谢谢
回答by mirmdasif
A simple modal pop up div or dialog box can be done by CSS properties and little bit of jQuery.The basic idea is simple:
一个简单的模态弹出 div 或对话框可以通过 CSS 属性和一点点 jQuery 来完成。基本思想很简单:
So we need three divs:
所以我们需要三个div:
First let us define the CSS:
    #hider
    {
        position:absolute;
        top: 0%;
        left: 0%;
        width:1600px;
        height:2000px;
        margin-top: -800px; /*set to a negative number 1/2 of your height*/
        margin-left: -500px; /*set to a negative number 1/2 of your width*/
        /*
        z- index must be lower than pop up box
       */
        z-index: 99;
       background-color:Black;
       //for transparency
       opacity:0.6;
    }
    #popup_box  
    {
    position:absolute;
        top: 50%;
        left: 50%;
        width:10em;
        height:10em;
        margin-top: -5em; /*set to a negative number 1/2 of your height*/
        margin-left: -5em; /*set to a negative number 1/2 of your width*/
        border: 1px solid #ccc;
        border:  2px solid black;
        z-index:100; 
    }
It is important that we set our hider div's z-index lower than pop_up box as we want to show popup_box on top.
Here comes the java Script:
        $(document).ready(function () {
        //hide hider and popup_box
        $("#hider").hide();
        $("#popup_box").hide();
        //on click show the hider div and the message
        $("#showpopup").click(function () {
            $("#hider").fadeIn("slow");
            $('#popup_box').fadeIn("slow");
        });
        //on click hide the message and the
        $("#buttonClose").click(function () {
            $("#hider").fadeOut("slow");
            $('#popup_box').fadeOut("slow");
        });
        });
And finally the HTML:
<div id="hider"></div>
<div id="popup_box">
    Message<br />
    <a id="buttonClose">Close</a>
</div>    
<div id="content">
    Page's main content.<br />
    <a id="showpopup">ClickMe</a>
</div>
I have used jquery-1.4.1.min.js www.jquery.com/download and tested the code in Firefox. Hope this helps.
首先让我们定义 CSS:
    #hider
    {
        position:absolute;
        top: 0%;
        left: 0%;
        width:1600px;
        height:2000px;
        margin-top: -800px; /*set to a negative number 1/2 of your height*/
        margin-left: -500px; /*set to a negative number 1/2 of your width*/
        /*
        z- index must be lower than pop up box
       */
        z-index: 99;
       background-color:Black;
       //for transparency
       opacity:0.6;
    }
    #popup_box  
    {
    position:absolute;
        top: 50%;
        left: 50%;
        width:10em;
        height:10em;
        margin-top: -5em; /*set to a negative number 1/2 of your height*/
        margin-left: -5em; /*set to a negative number 1/2 of your width*/
        border: 1px solid #ccc;
        border:  2px solid black;
        z-index:100; 
    }
将隐藏器 div 的 z-index 设置为低于 pop_up 框很重要,因为我们希望在顶部显示 popup_box。
这是java脚本:
        $(document).ready(function () {
        //hide hider and popup_box
        $("#hider").hide();
        $("#popup_box").hide();
        //on click show the hider div and the message
        $("#showpopup").click(function () {
            $("#hider").fadeIn("slow");
            $('#popup_box').fadeIn("slow");
        });
        //on click hide the message and the
        $("#buttonClose").click(function () {
            $("#hider").fadeOut("slow");
            $('#popup_box').fadeOut("slow");
        });
        });
最后是 HTML:
<div id="hider"></div>
<div id="popup_box">
    Message<br />
    <a id="buttonClose">Close</a>
</div>    
<div id="content">
    Page's main content.<br />
    <a id="showpopup">ClickMe</a>
</div>
我使用了 jquery-1.4.1.min.js www.jquery.com/download 并在 Firefox 中测试了代码。希望这可以帮助。
回答by rcravens
Here is a jfiddle example of a modal overlay using jQuery.
这是使用 jQuery 的模态叠加的 jfiddle 示例。
Hope this gets you started.
希望这能让你开始。
Bob
鲍勃

