JQuery、Chrome、仅Safari、带滚动复制和滚动条关闭的模式。需要停止背景滚动
我有一个500px x 500px的模式,页面主体上的滚动条已关闭。在模态中,副本很长,包含锚定标记。我的问题是,当我在Chrome或Safari中单击锚定标记时,主体会随着模式副本一起滚动,有人有修复方法吗?它可以在所有其他浏览器中正常工作。下面是我的jQueryJQuery、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();
$('.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"
});