Fancybox叠加在iPhone或iPad上滚动

Kri*_*ova 6 mobile scroll overlay fancybox

我打算在Fancybox打开时阻止滚动背景页面.这个助手:{overlay:{locked:true}不适用于iPad和iPhone(我只需要在移动设备上修复它).我找不到任何解决方案.它存在吗?..

小智 3

“被迫”在与您描述的类似的环境中工作我遇到了完全相同的问题。事实上,有很多与滚动和溢出相关的答案,主要与 Facebook 的初始化设置有关,但任何地方给出的答案都不会产生任何好处 - 我想你很清楚。

然而,在我的具体情况下,我偶然发现了一个(浏览器堆栈确认的)修复程序,我很确定这就是您所需要的。

首次初始化 Fancybox 时,请务必将 css 值设置为打开 Fb 窗口时固定的主体位置(通过添加 afterShow 回调),然后在窗口关闭时删除该设置(我使用 afterClose 回调)。看到我们只想/需要将此修复应用于 iProducts,让我们将实际的 CSS 更改代码包装在一个条件中,调用一个检查 userAgent 是否匹配的函数。就像这样:

function applePie() {
    return ( navigator.userAgent.match(/(iPhone|iPod|iPad)/i) );
}

$('.fancy-overlay').fancybox({
    your: 'settings',
    afterShow: function() { 
        if ( applePie() ) { $('body').css({'position': 'fixed'}); } 
    },
    afterClose: function() {
        if ( applePie() ) { $('body').css({'position': ''}); }
    }
});
Run Code Online (Sandbox Code Playgroud)