1

我正在寻找一种方法来做到这一点:

  1. Javascript 函数,可打开一个显示我的员工列表视图的弹出窗口
  2. 当弹出窗口打开灰色父/打开器窗口时
  3. 当弹出窗口关闭时,父窗口“面纱”被移除。

感谢您提供任何代码或想法。

4

4 回答 4

1

我的理解是这样的……

您正在尝试使用称为“覆盖”的东西(在父项打开时将灰色背景放在子项中)。这被称为模态弹出窗口,在这里我给你一个插件链接,以便将它们与 jQuery 一起使用:

http://www.designlabelblog.com/2009/03/20-ways-to-create-javascript-modal.html

于 2012-05-21T03:45:50.873 回答
1

这是我为此构建的解决方案,可通过open()close()

您可以将所有内容粘贴在其中#container

的HTML:

<span id="empli">Employees</span>

<div id="block"></div>
<div id="container">
    <h3>Employees</h3>
    <ul>
        <li>James</li>
        <li>Jemima</li>
        <li>lenny</li>
        etc..
    </ul>
    <span id="closebtn">Close</span>
</div>​

的CSS:

* { font-family: Trebuchet MS; }
#container {width:90%; height: 90%; display: none; position: fixed;margin-top: 5%; margin-left: 5%; background:#FFF; border: 1px solid #666;border: 1px solid #555;box-shadow: 2px 2px 40px #222; z-index: 999999;}
#container iframe {display:none; width: 100%; height: 100%; position: absolute; border: none; }
#block {background: #000; opacity:0.6;  position: fixed; width: 100%; height: 100%; top:0; left:0; display:none;}
ul { padding:10px; background: #EEE; position: absolute; height: 200px; overflow: scroll;}
ul li {color: #222; padding: 10px; font-size: 22px; border-bottom: 1px solid #CCC;  }
h3 { font-size: 26px; padding:18px; border-bottom: 1px solid #CCC; }
#closebtn { top: 13px;position: absolute;right: 13px; padding: 10px; background: #EEE; border: 1px solid #CCC;}
#closebtn:hover {  cursor: pointer; background: #E5E5E5 }

#empli { top: 13px;position: absolute;left: 13px; padding: 10px; background: #EEE; border: 1px solid #CCC;}
#empli:hover {  cursor: pointer; background: #E5E5E5 }

​<strong>jquery:

function open() {
    $('#block').fadeIn();
    $('#container').fadeIn();   
}

function close() {  
    $('#block').fadeOut();
    $('#container').fadeOut();  
}

$(document).ready(function() {
  $('ul').css({width: $('#container').width()-20,height:    $('#container').height()-90})

     $('#closebtn').click( function() { close() })
     $('#empli').click( function() { open() })

});

​</p>

于 2012-05-21T04:18:12.037 回答
0

只需使用window.open然后添加一些您需要将父窗口灰显的条件

于 2012-05-21T03:45:23.347 回答
0

如何做到这一点有很多变化。面对同样的需求,我最终决定使用 jQuery.impromptu。一旦定义了窗口的内容,我就会弹出它,同时用一个阶段将父级灰显:

    $.prompt(sFirstText,{overlayspeed:'fast',prefix:'wideJqi',top:80});

您可以在http://terryliittschwager.com/WB/JWB.php看到它。

Impromptu 可在http://trentrichardson.com/Impromptu/获得。

于 2012-05-21T04:05:27.237 回答