Javascript 如何在不跳到顶部的情况下锁定fancybox覆盖?

Javascript 如何在不跳到顶部的情况下锁定fancybox覆盖?,javascript,iframe,fancybox-2,Javascript,Iframe,Fancybox 2,我想在fancybox打开时禁用浏览器滚动。下一个代码是: helpers: { overlay: { locked: true } }, 但在移动设备上,打开fancybox时窗口会跳到顶部。此行为取决于locked:true参数。如何锁定覆盖层并防止跳跃 不同的决定,例如: $('html').css('overflow', 'hidden') 或 工作,但不是在所有的移动浏览器 我也不得不处理这个问题,这让我发疯了。我尝试了几乎所有的选项,搜索了stackov

我想在fancybox打开时禁用浏览器滚动。下一个代码是:

helpers: {
   overlay: {
      locked: true 
   }
},
但在移动设备上,打开fancybox时窗口会跳到顶部。此行为取决于locked:true参数。如何锁定覆盖层并防止跳跃

不同的决定,例如:

$('html').css('overflow', 'hidden')


工作,但不是在所有的移动浏览器

我也不得不处理这个问题,这让我发疯了。我尝试了几乎所有的选项,搜索了stackoverflow上的所有问题和答案,但我的ajax lightbox似乎没有任何效果。我总是跳到顶端。然后我做了以下工作:

$(".lightboxe-fancyboxWindow").fancybox({ 
    type : 'ajax',
    href : "<?php echo $_SERVER['PHP_SELF']; ?>",
    ajax: {
        type: "POST",
        data: {     
            'data1' : information1,
            'data2' : information2
        },
    },
    autoSize: false,
    width: '60%',
    beforeShow : function() {
        $("body").css({"overflow" : "hidden", "padding-right" : "17px"});
    },
    afterClose: function () {
        $("html, body").removeAttr("style");
    },
    titleShow : false,
    helpers : { 
        overlay : {
            locked : false
        },
         title : null
    },
});
$(“.lightboxefancyboxwindow”).fancybox({
键入:“ajax”,
href:“,
阿贾克斯:{
类型:“POST”,
数据:{
“数据1”:信息1,
“数据2”:信息2
},
},
自动调整大小:false,
宽度:“60%”,
beforeShow:function(){
$(“body”).css({“overflow”:“hidden”,“padding right”:“17px”});
},
后关闭:功能(){
$(“html,body”).removeAttr(“样式”);
},
标题:假,
助手:{
覆盖:{
锁定:错误
},
标题:空
},
});

我所做的是在body标签上添加了溢出隐藏和
17px
填充
假滚动条

如果您使用的是fancybox v2.1.5,那么这个问题似乎已经在最新的主控中得到了解决,您可以在这里下载表单版本:2.1.5(2013年6月14日,星期五)。这个问题还没有解决。(据我所知,主更新是从2013年10月9日开始的。我已经下载了最新版本,但存在错误。不确定这是否是同一问题,但在iOS safari中,当你移动手指时,总是会有一定量的橡皮筋滚动。如果safari的,当你滚动时底部导航可见,它会消失,但会留下一个间隙,你可以看到。)然后将下面的内容滚动到此间隙。干杯
$(".lightboxe-fancyboxWindow").fancybox({ 
    type : 'ajax',
    href : "<?php echo $_SERVER['PHP_SELF']; ?>",
    ajax: {
        type: "POST",
        data: {     
            'data1' : information1,
            'data2' : information2
        },
    },
    autoSize: false,
    width: '60%',
    beforeShow : function() {
        $("body").css({"overflow" : "hidden", "padding-right" : "17px"});
    },
    afterClose: function () {
        $("html, body").removeAttr("style");
    },
    titleShow : false,
    helpers : { 
        overlay : {
            locked : false
        },
         title : null
    },
});