2012-03-21 56 views
1

在Facebook上,您看到一张图片,屏幕的其余部分变为锁定灰色, ,直到您关闭该图片为止,您无法执行其他任何操作。它背后的逻辑是什么? 它是我需要把隐藏作为我的CSS的一部分的对象? 它是用jQuery构建的代码行吗? 什么是对待这件事的正确和可接受的方法?聚焦带锁背景的图片

我知道这是jQuery,但不能笼罩我的头。

回答

1

您应该检查thickboxlightbox plugin for jQueryother lightboxthickbox projects

对于其他模式对话框(位于页面上的可撤销对话框),请查看jQuery UI框架的dialog component

如果你看看演示页面并使用浏览器内置的开发工具,你可以看到它是如何工作的。 ThickBox的例如有重叠div来禁用整个页面:

<div id="TB_overlay" class="TB_overlayBG"></div> 

与下面的CSS:

#TB_overlay { 
    position: fixed; 
    z-index: 100; 
    top: 0px; 
    left: 0px; 
    height: 100%; 
    width: 100%; 
} 

正如你所看到的,东西有100的z指数在最前面其余的部分,并且遍布整个页面。

其次存在重叠窗口

<div id="TB_window" ...></div> 

与102的z索引中心的,是在上述覆盖层的前:

#TB_window { 
    position: fixed; 
    z-index: 102; 
    top: 50%; 
    left: 50%; 
    ... 
} 
+0

为什么downvote? – 2012-03-21 15:00:20

+0

由于答案大幅扩展,我收回downvote,但它开始与字面上只是“你应该检查灯箱”,甚至没有回答这个问题。 – JJJ 2012-03-21 17:22:09

+0

@Juhana:是的,你说得对。我意识到在downvote之后,谢谢! – 2012-03-21 20:37:00

1

我想你指的是lightbox效果。

它通常具有覆盖做相对绝对positionned body元素,宽度100%的宽度和高度的div:

div.overlay { 
position : absolute; 
top : 0; 
left : 0; 
width : 100%; 
height : 100%; 
} 

此叠加在里面,你把你的形象,每例如:

div.overlay img { 
position : absolute; 
top : 50%; 
left : 50%; 
margin-left : /* negative half the width of your image */ 
margin-top: /* negative half the height of your image */ 
} 

这只是其中一种方法(只有在知道图像尺寸的情况下才能使用)。通常通过javascript计算居中。

搜索灯箱,你会发现吨Jquery插件和教程。