我有一个对话框,当用户单击图像时我会拉出该对话框,并且在对话框打开时禁用对文档的滚动。由于IE的“平滑滚动”选项,我遇到了一个问题,如果我禁用滚动,那么你尝试在IE中滚动,你会得到一个非常小的/闪烁的屏幕,直到你停止滚动。我试图实现另一个用户建议来解决这个问题,但它似乎没有帮助。有谁知道如何解决这个问题?
对话框代码:
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);
};
}