Javascript 是否可以在页面顶部打开颜色框覆盖,但不允许向上滚动?

Javascript 是否可以在页面顶部打开颜色框覆盖,但不允许向上滚动?,javascript,overlay,colorbox,Javascript,Overlay,Colorbox,正如标题所说,我正在尝试实现一个彩色框覆盖,其中覆盖位于顶部,用户无法向上滚动,因此如果从长页面的中间打开覆盖,则会显示变黑的区域。这个问题在移动设备上尤其令人讨厌。实际上,作为这个“愿望”的延伸,如果我们只能滚动到覆盖的末尾,而不是超过它,那将是同样伟大的 解决这个问题的第一个方法可能是 固定位置,顶部:0方法 问题是,假设覆盖始终在窗口大小内。如果覆盖图高于窗口大小,需要滚动才能完整查看,则无法使用固定位置滚动覆盖图 丑陋的解决方案是执行上述操作,将覆盖层保持在保守的高度,并允许在color

正如标题所说,我正在尝试实现一个彩色框覆盖,其中覆盖位于顶部,用户无法向上滚动,因此如果从长页面的中间打开覆盖,则会显示变黑的区域。这个问题在移动设备上尤其令人讨厌。实际上,作为这个“愿望”的延伸,如果我们只能滚动到覆盖的末尾,而不是超过它,那将是同样伟大的

解决这个问题的第一个方法可能是

固定位置,顶部:0方法

问题是,假设覆盖始终在窗口大小内。如果覆盖图高于窗口大小,需要滚动才能完整查看,则无法使用固定位置滚动覆盖图

丑陋的解决方案是执行上述操作,将覆盖层保持在保守的高度,并允许在colorbox中使用滚动参数。然而,这是不公平的,因为它在某些浏览器上显示丑陋的滚动条

所以我希望,如果有人知道一种方法,防止滚动也许,当覆盖是开放的?为了防止向下滚动通过覆盖层,我希望一些javascript圣人能有所启发


提前谢谢

尝试设置主体的css属性overflow:hidden,例如在jQuery中

$('body').css({overflow:'hidden'})

我们可以使用JavaScript向BG添加溢出

请尝试以下代码:

        jQuery(document).ready(function(){
        $(document).bind('cbox_open', function() {
            $('html').css({ overflow: 'hidden' });
        }).bind('cbox_closed', function() {
            $('html').css({ overflow: '' });
        });
        });
我在这里找到了这个:


为我工作

是的,我这样做了,但归根结底,一切都是可解卷的,这是我想要的一半,但如果我的覆盖层超过了当前窗口大小,我就完蛋了。而且,这种方法在移动设备上似乎不起作用。