Tôi nhận ra đây là một câu hỏi cũ, nhưng tôi nghĩ rằng tôi đã tìm ra một giải pháp tốt cho nó. Vấn đề là hộp ưa thích đó thay đổi giá trị tràn của phần thân để ẩn các thanh cuộn của trình duyệt.
Như Dave Kiss đã chỉ ra, chúng ta có thể ngăn hộp ưa thích làm điều này bằng cách thêm các thông số sau:
$('.image').fancybox({
padding: 0,
helpers: {
overlay: {
locked: false
}
}
});
Tuy nhiên, bây giờ chúng ta có thể cuộn trang chính trong khi nhìn vào cửa sổ hình hộp ưa thích của mình. Nó tốt hơn là nhảy lên đầu trang, nhưng nó có lẽ không phải là những gì chúng ta thực sự muốn.
Chúng tôi có thể ngăn việc cuộn đúng cách bằng cách thêm các tham số tiếp theo:
$('.image').fancybox({
padding: 0,
helpers: {
overlay: {
locked: false
}
},
'beforeLoad': function(){
disable_scroll();
},
'afterClose': function(){
enable_scroll();
}
});
Và thêm các chức năng này từ galambalaz. Hãy xem: Làm cách nào để tắt tính năng cuộn tạm thời?
var keys = [37, 38, 39, 40];
function preventDefault(e) {
e = e || window.event;
if (e.preventDefault) e.preventDefault();
e.returnValue = false;
}
function keydown(e) {
for (var i = keys.length; i--;) {
if (e.keyCode === keys[i]) {
preventDefault(e);
return;
}
}
}
function wheel(e) {
preventDefault(e);
}
function disable_scroll() {
if (window.addEventListener) {
window.addEventListener('DOMMouseScroll', wheel, false);
}
window.onmousewheel = document.onmousewheel = wheel;
document.onkeydown = keydown;
}
function enable_scroll() {
if (window.removeEventListener) {
window.removeEventListener('DOMMouseScroll', wheel, false);
}
window.onmousewheel = document.onmousewheel = document.onkeydown = null;
}