Javascript jQuery固定滚动对话框在IE中出现故障
我有一个对话框,当用户单击一个图像时,我会打开它,当对话框打开时,我会禁用对文档的滚动。我遇到了一个问题,因为IE的“平滑滚动”选项,如果我禁用滚动,然后你尝试在IE中滚动,你会得到一个非常闪烁/闪烁的屏幕,直到你停止滚动。我试图实现另一个用户建议来解决这个问题,但似乎没有帮助。有人知道如何解决这个问题吗 对话框代码:Javascript jQuery固定滚动对话框在IE中出现故障,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个对话框,当用户单击一个图像时,我会打开它,当对话框打开时,我会禁用对文档的滚动。我遇到了一个问题,因为IE的“平滑滚动”选项,如果我禁用滚动,然后你尝试在IE中滚动,你会得到一个非常闪烁/闪烁的屏幕,直到你停止滚动。我试图实现另一个用户建议来解决这个问题,但似乎没有帮助。有人知道如何解决这个问题吗 对话框代码: function ShowLightBox(src, width, height) { $('#imgLight').attr('src', src); $('#
function ShowLightBox(src, width, height) {
$('#imgLight').attr('src', src);
$('#imgLight').addClass('lightboxZoom');
$('#imgLight').removeClass('lightboxPointer');
if (detectIE()) {
DisableIEGlitchScroll();
}else{
disableScrolling();
}
$("#lightbox").dialog({
modal: true,
resizable: false,
width: width,
height: height,
closeOnEscape: true,
draggable: false,
open: function () {
$('.ui-icon').text('');
$('.ui-widget-overlay').bind('click', function () { //close dialog if user clicks on the modal area
$('#lightbox').dialog('close');
})
},
close: function () {
enableScrolling();
}
});
}
辅助功能:
function disableScrolling() { //lock scrolling on modal page
var x = window.scrollX;
var y = window.scrollY;
window.onscroll = function () { window.scrollTo(x, y); };
}
function enableScrolling() {
window.onscroll = function () { };
}
function DisableIEGlitchScroll(){
window.onscroll = function () {
var wheelDelta = event.wheelDelta;
var currentScrollPosition = window.pageYOffset;
window.scrollTo(0, currentScrollPosition - wheelDelta);
};
}
我认为更好的解决方案是在滚动元素(可能是html>body)上临时设置“overflow:hidden”。我想这就是Steam在长提要中单击Steam社区条目时所做的,举个例子。@Katana314好主意。这工作做得很好!