আমি বুঝতে পারি এটি একটি পুরানো প্রশ্ন, তবে আমি মনে করি এটির জন্য আমি একটি ভাল সমাধান খুঁজে পেয়েছি। সমস্যাটি হ'ল অভিনব বাক্স ব্রাউজারের স্ক্রোলবারগুলি লুকানোর জন্য শরীরের ওভারফ্লো মানকে পরিবর্তন করে।
ডেভ কিস হিসাবে উল্লেখ করা হয়েছে, আমরা নিম্নলিখিত প্যারামিটারগুলি যুক্ত করে অভিনব বাক্সটিকে এটি করা থেকে বিরত করতে পারি:
$('.image').fancybox({
padding: 0,
helpers: {
overlay: {
locked: false
}
}
});
তবে, এখন আমাদের অভিনব বাক্স উইন্ডোটি দেখার সময় আমরা মূল পৃষ্ঠাটি স্ক্রোল করতে পারি। পৃষ্ঠার শীর্ষে ঝাঁপিয়ে পড়ার চেয়ে এটি ভাল তবে আমরা সম্ভবত যা চাই তা সম্ভবত এটি নয়।
আমরা পরবর্তী প্যারামিটারগুলি যুক্ত করে সঠিক উপায়ে স্ক্রোলিং প্রতিরোধ করতে পারি:
$('.image').fancybox({
padding: 0,
helpers: {
overlay: {
locked: false
}
},
'beforeLoad': function(){
disable_scroll();
},
'afterClose': function(){
enable_scroll();
}
});
এবং গালামবালাজ থেকে এই ফাংশনগুলি যুক্ত করুন। দেখুন: কীভাবে অস্থায়ীভাবে স্ক্রোলিং অক্ষম করবেন?
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;
}