我需要一个模态覆盖层,可以阻止用户与页面的其他部分进行交互,并且用户不能关闭它。但我找不到一个不必覆盖现有功能(如删除X按钮或删除esc-to-close功能)的插件。
有人知道能做到这一点的JQuery插件或其他JS库吗?更小和更简单的最好...
实际上,这相当容易自己编写(用100%透明的div覆盖整个页面),但要完美实现比较困难(如果用户调整窗口大小怎么办?键盘tab键怎么办?)。所以理想情况下,我会使用插件,但我讨厌为我的需求配置插件,因为它们似乎永远无法完美地满足我的需求!
有人知道能做到这一点的JQuery插件或其他JS库吗?更小和更简单的最好...
实际上,这相当容易自己编写(用100%透明的div覆盖整个页面),但要完美实现比较困难(如果用户调整窗口大小怎么办?键盘tab键怎么办?)。所以理想情况下,我会使用插件,但我讨厌为我的需求配置插件,因为它们似乎永远无法完美地满足我的需求!
http://developer.yahoo.com/yui/examples/container/panel-loading.html
幸运的是我已经在使用YUI了,只是忽略了这个。正是我想要的。
我认为只需添加覆盖层div会更容易且需要的代码更少,而不是使用任何库。
$('<div></div>').css({ top: 0, bottom: 0, left: 0, right: 0, position: absolute, zIndex: 1000 }).appendTo(document.body);
您可以使用仅 CSS 完成此操作,使用叠加层 div,该 div 的位置绝对定位为其容器的顶部、左侧、右侧和底部,如下所示:
HTML
<div class="overlay"></div>
<div class="content">
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
<button type="button">Click Me!</button>
</div>
CSS
.content {
width:400px;
height:400px;
position:relative;
z-index:1;
}
.overlay {
opacity:0;
filter: alpha(opacity = 0);
position:absolute;
top:0; bottom:0; left:0; right:0;
display:block;
z-index:2;
background:transparent;
}