用jQuery编写模态弹出窗口

时间:2011-03-17 03:39:30

标签: jquery

我试图了解模态窗口的工作原理。我知道,那里有多个插件,但我想写自己的插件 - 一个简单的插件。

- 当在页面上单击某个元素时,我可以添加一个jquery函数来show()隐藏图层。

- 我可以将它加载到页面内容之上但调整CSS,但我仍然不确定如何做几件事。

例如,如何让页面的其余部分在窗口下方淡出?

感谢。

2 个答案:

答案 0 :(得分:1)

您必须在模态内容和页面的其余部分之间使用另一个图层。这通常称为叠加层。覆盖层为黑色或白色(通常),略微不透明。

为了获得最佳结果集

body, html      { width: 100%; height: 100% }

这样叠加层不会受到body / html大小的限制。

div.overlay     { width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 12000 }

然后附加叠加层:

var overlay = $('<div />').css({opacity: '.8' }).addClass('overlay');
$('body').append(overlay);

如果您开始遇到问题,那么在旧版浏览器(如IE 6)中,在z-index控制元素之上显示下拉列表。为此,您必须在内容下使用隐藏的iframe技术。

答案 1 :(得分:1)

jQuery's dialog为例。它使用div元素,其中设置了明确的宽度和高度(通过Javascript动态计算),并且绝对位于左上角。为了获得褪色效果,设置了具有不透明度的背景图像(对于IE,也应用filter: alpha(opacity = 50);)。

标记:

<div class="ui-widget-overlay" style="width: 1263px; height: 1274px; z-index: 1003;"></div>

CSS:

.ui-widget-overlay 
{
    background-image: url('path/to/dark-image.png');
    opacity: 0.5;
    left: 0;
    position: absolute;
    top: 0;
}