保留侧边栏但删除滚动JavaScript



我正在尝试复制facebook以灯箱类型格式显示图片的方式。我在复制时唯一遇到的问题是,他们实现的方式是在侧边栏中没有实际的滚动条。。。

我想,任何人看到这一点的最好方法是在脸书上调出一张照片,这样灯箱效果就会发挥作用。注意侧边栏。有人对此有什么建议或方法吗?有没有一种方法可以针对滚动条上的特定节点?

谢谢。jQuery是这个项目的首选库。

老实说,这主要是CSS。

看看这把小提琴:http://jsfiddle.net/ktd29/11/

我模仿Facebook创建了世界上最糟糕的灯箱。红色方块代表图片,黑色半透明覆盖。

您会注意到主体是可滚动的,直到您单击链接,此时滚动条将被禁用。

半透明覆盖层是一个绝对定位的div,具有100%的宽度和高度:

div {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: rgba(0,0,0,0.7);
overflow-y: scroll;
display: none;
}

关于这个div,最后要注意的是overflow-y被设置为scroll,这意味着无论它是否真的可以滚动,都会有一个滚动条。

文档的高度被设置为非常大的值,这样当你不看灯箱时,页面是可以滚动的。这是调用灯箱的代码:

jQuery(document).ready(function($) {
$('a').click(function(){
$('div').addClass('shown');
$('html').addClass('noScroll');
});
});

这正是你所期望的。我正在应用所示的一个类,在本例中它实际上只是display: block;,但请注意noScroll的类正在应用于HTML。这将overflow-y: hidden;应用于删除原始滚动条的html。这样就不再有两个滚动条了(一个用于html,一个用于overlaydiv)。

如果你需要我澄清什么,请告诉我。

最新更新