অ্যাপ্লিকেশনগুলিতে আমি আমার সমাধানটি ব্যবহার করেছি।
আমি শরীরের ওভারফ্লো অক্ষম করে দিয়ে পুরো ওয়েবসাইট এইচটিএমএলটি ধারক ডিভের ভিতরে রেখেছি। ওয়েবসাইটের পাত্রে ওভারফ্লো হয়েছে এবং তাই ব্যবহারকারী প্রত্যাশা অনুযায়ী পৃষ্ঠাটি স্ক্রোল করতে পারে।
তারপরে আমি একটি উচ্চতর জেড-ইনডেক্স সহ একটি ভাইবোন ডিভ (# প্রিভেন্ট) তৈরি করেছি যা পুরো ওয়েবসাইট জুড়ে। যেহেতু # প্রিভেন্টের উচ্চতর জেড-সূচক রয়েছে তাই এটি ওয়েবসাইটের ধারকটিকে ওভারল্যাপ করে। যখন # প্রিভেন্ট দৃশ্যমান হয় তখন মাউস আর ওয়েবসাইটের ধারকগুলিতে ঘোরাফেরা করে না, সুতরাং স্ক্রোলিং সম্ভব হয় না।
আপনি অবশ্যই অন্য একটি ডিভ রাখতে পারেন, যেমন আপনার মডেল হিসাবে, মার্কআপে # প্রিভেন্টের চেয়ে উচ্চতর জেড-ইনডেক্স রয়েছে। এটি আপনাকে পপ-আপ উইন্ডোগুলি তৈরি করতে দেয় যা স্ক্রোলিং সমস্যায় ভুগছে না।
এই সমাধানটি আরও ভাল কারণ এটি স্ক্রোলবারগুলি আড়াল করে না (জাম্পিং প্রভাবিত করে)। এটি ইভেন্ট শ্রোতার প্রয়োজন হয় না এবং এটি বাস্তবায়ন করা সহজ। এটি সমস্ত ব্রাউজারে কাজ করে, যদিও আই 7 এবং 8 এর সাথে আপনাকে প্রায় খেলতে হবে (আপনার নির্দিষ্ট কোডের উপর নির্ভর করে)।
এইচটিএমএল
<body>
<div id="YourModal" style="display:none;"></div>
<div id="Prevent" style="display:none;"></div>
<div id="WebsiteContainer">
<div id="Website">
website goes here...
</div>
</div>
</body>
সিএসএস
body { overflow: hidden; }
#YourModal {
z-index:200;
}
#Prevent {
z-index:100;
position:absolute;
left:0px;
height:100%;
width:100%;
background:transparent;
}
#WebsiteContainer {
z-index:50;
overflow:auto;
position: absolute;
height:100%;
width:100%;
}
#Website {
position:relative;
}
jquery / js
function PreventScroll(A) {
switch (A) {
case 'on': $('#Prevent').show(); break;
case 'off': $('#Prevent').hide(); break;
}
}
স্ক্রোলটি অক্ষম / সক্ষম করুন
PreventScroll('on');
PreventScroll('off');