Saya menyadari ini adalah pertanyaan lama, tetapi saya rasa saya telah menemukan solusi yang baik untuk itu. Masalahnya adalah bahwa kotak mewah mengubah nilai luapan tubuh untuk menyembunyikan bilah gulir browser.
Seperti yang ditunjukkan Dave Kiss, kita dapat menghentikan kotak mewah dari melakukan ini dengan menambahkan parameter berikut:
$('.image').fancybox({
padding: 0,
helpers: {
overlay: {
locked: false
}
}
});
Tapi, sekarang kita bisa menggulir halaman utama sambil melihat jendela kotak mewah kita. Ini lebih baik daripada melompat ke atas halaman, tetapi mungkin itu bukan yang sebenarnya kita inginkan.
Kita dapat mencegah pengguliran dengan cara yang benar dengan menambahkan parameter berikutnya:
$('.image').fancybox({
padding: 0,
helpers: {
overlay: {
locked: false
}
},
'beforeLoad': function(){
disable_scroll();
},
'afterClose': function(){
enable_scroll();
}
});
Dan tambahkan fungsi-fungsi ini dari galambalaz. Lihat: Bagaimana cara menonaktifkan pengguliran sementara?
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;
}