Html 将 div 显示为模态弹出窗口

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6263303/
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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-29 08:58:41  来源:igfitidea点击:

Show a div as a modal pop up

htmlmodal-dialog

提问by VansFannel

I have the following div:

我有以下 div:

<div id="divAlert">
    <div id='divAlertText'>You must select a language.</div>
    <div id='divAlertButton' class='btn blue' onclick="HideAlert();">Ok</div>
</div>

Is this HTML page there are more divs and buttons. I want to show divAlertas a modal pop up.

这个 HTML 页面有更多的 div 和按钮。我想显示divAlert为模态弹出窗口。

I know there is something in jQuery, I think, that I can use to show my div with a half transparent black background filling the entire page. But I can't remember its name.

我知道在 jQuery 中有一些东西,我想,我可以用它来显示我的 div 与填充整个页面的半透明黑色背景。但我想不起它的名字。

Any advice?

有什么建议吗?

采纳答案by Buddhi

you can use jquery dialog widget

您可以使用 jquery 对话框小部件

http://jqueryui.com/demos/dialog/

http://jqueryui.com/demos/dialog/

回答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 来完成。基本思想很简单:

  • 1. Create a div with semi transparent background & show it on top of your content page on click.
  • 1. 创建一个具有半透明背景的 div 并在点击时将其显示在您的内容页面顶部。
  • 2. Show your pop up div or alert div on top of the semi transparent dimming/hiding div.
  • 2. 在半透明调光/隐藏 div 的顶部显示您的弹出 div 或警报 div。
  • So we need three divs:

    所以我们需要三个div:

  • content(main content of the site).
  • 内容(网站的主要内容)。
  • hider(To dim the content).
  • 隐藏器(使内容变暗)。
  • popup_box(the modal div to display).

    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.

  • popup_box(要显示的模态div)。

    首先让我们定义 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 中测试了代码。希望这可以帮助。