JQuery、Chrome、仅Safari、带滚动复制和滚动条关闭的模式。需要停止背景滚动

JQuery、Chrome、仅Safari、带滚动复制和滚动条关闭的模式。需要停止背景滚动,jquery,css,cross-browser,modal-dialog,simplemodal,Jquery,Css,Cross Browser,Modal Dialog,Simplemodal,我有一个500px x 500px的模式,页面主体上的滚动条已关闭。在模态中,副本很长,包含锚定标记。我的问题是,当我在Chrome或Safari中单击锚定标记时,主体会随着模式副本一起滚动,有人有修复方法吗?它可以在所有其他浏览器中正常工作。下面是我的jQuery $('.leftside .home-popup').click(function (e) { var os = $('.home-popup').offset();

我有一个500px x 500px的模式,页面主体上的滚动条已关闭。在模态中,副本很长,包含锚定标记。我的问题是,当我在Chrome或Safari中单击锚定标记时,主体会随着模式副本一起滚动,有人有修复方法吗?它可以在所有其他浏览器中正常工作。下面是我的jQuery

        $('.leftside .home-popup').click(function (e) {
            var os = $('.home-popup').offset();
            var top = os.top;
            var left = os.left;
            var adjustleft = left - 8;
            //call popup with no scroll bars                                                       
            var oldBodyMarginRight = $("body").css("margin-right");
            $("#benefits-modal").modal({ position: [74, adjustleft],
                onShow: function () {
                    // Turn off scroll bars 
                    var body = $("body");
                    var html = $("html");
                    var oldBodyOuterWidth = body.outerWidth(true);
                    var oldScrollTop = html.scrollTop();
                    var newBodyOuterWidth;
                    $("html").css("overflow-y", "hidden");
                    newBodyOuterWidth = $("body").outerWidth(true);
                    body.css("margin-right", (newBodyOuterWidth - oldBodyOuterWidth + parseInt(oldBodyMarginRight)) + "px");
                    html.scrollTop(oldScrollTop); // necessary for Firefox
                    $("#simplemodal-overlay").css("width", newBodyOuterWidth + "px")
                },
                onClose: function () {
                    var html = $("html");
                    var oldScrollTop = html.scrollTop(); // necessary for Firefox.
                    html.css("overflow-y", "").scrollTop(oldScrollTop);
                    $("body").css("margin-right", oldBodyMarginRight);
                    $.modal.close();
                },
                overlayClose: true
            });
            $('a.modalCloseImg').css("left", "700px");
            return false;
        });
然后:


这会将
正文
css设置为
溢出:隐藏
,以防止向任何方向滚动。

您有可以链接到我们的演示页面(JSFIDLE)或相应的html吗?很抱歉,我刚刚回到这个项目时出现了延迟,这没有解决问题。当我在模式中单击一个锚点时,背景将继续在Safari和chrome中滚动。我在这里贴了一个例子
body.css({
    "margin-right": (newBodyOuterWidth - oldBodyOuterWidth + parseInt(oldBodyMarginRight)) + "px",
    "overflow": "hidden"
});
$("body").css({
    "margin-right": oldBodyMarginRight,
    "overflow": "auto"
});