Bunun eski bir soru olduğunun farkındayım, ancak bunun için iyi bir çözüm bulduğumu düşünüyorum. Sorun, süslü kutunun tarayıcı kaydırma çubuklarını gizlemek için gövdenin taşma değerini değiştirmesidir.
Dave Kiss'in belirttiği gibi, aşağıdaki parametreleri ekleyerek fantezi kutusunun bunu yapmasını durdurabiliriz:
$('.image').fancybox({
padding: 0,
helpers: {
overlay: {
locked: false
}
}
});
Ancak artık süslü kutu penceremize bakarken ana sayfayı kaydırabiliriz. Sayfanın en üstüne atlamaktan daha iyidir, ancak muhtemelen istediğimiz şey bu değildir.
Sonraki parametreleri ekleyerek doğru şekilde kaydırmayı engelleyebiliriz:
$('.image').fancybox({
padding: 0,
helpers: {
overlay: {
locked: false
}
},
'beforeLoad': function(){
disable_scroll();
},
'afterClose': function(){
enable_scroll();
}
});
Ve bu fonksiyonları galambalaz'dan ekleyin. Bkz: Kaydırmayı geçici olarak nasıl devre dışı bırakabilirim?
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;
}