এইগুলির কোনও সমাধানই আমার পক্ষে কাজ করেনি কারণ আমার ডোম জটিল এবং আমার গতিশীল অসীম স্ক্রোল পৃষ্ঠা রয়েছে, তাই আমাকে নিজের তৈরি করতে হয়েছিল।
পটভূমি: আমি স্থির শিরোনাম এবং আরও নীচে এমন একটি উপাদান ব্যবহার করছি যা একবার ব্যবহারকারীর কাছ থেকে নীচে স্ক্রোল করে। এই উপাদানটির একটি অনুসন্ধান ইনপুট ক্ষেত্র রয়েছে। এছাড়াও, আমার সামনে এবং পিছনের দিকে স্ক্রোল চলাকালীন গতিশীল পৃষ্ঠা যুক্ত হয়েছে।
সমস্যা: আইওএস-এ, ব্যবহারকারী যে কোনও সময় স্থির উপাদানের ইনপুটটিতে ক্লিক করলে ব্রাউজারটি পৃষ্ঠার শীর্ষে সমস্ত দিকে স্ক্রোল করে। এটি কেবল অনাকাঙ্ক্ষিত আচরণের কারণেই নয়, এটি পৃষ্ঠার শীর্ষে আমার গতিশীল পৃষ্ঠা অ্যাডকে ট্রিগার করেছে।
প্রত্যাশিত সমাধান: ব্যবহারকারী যখন স্টিকি উপাদানটির ইনপুটটিতে ক্লিক করে তখন আইওএস-এ কোনও স্ক্রোল নেই (কিছুই নয়)।
সমাধান:
function debounce(func, wait, immediate) {
var timeout;
return function () {
var context = this, args = arguments;
var later = function () {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
function is_iOS() {
var iDevices = [
'iPad Simulator',
'iPhone Simulator',
'iPod Simulator',
'iPad',
'iPhone',
'iPod'
];
while (iDevices.length) {
if (navigator.platform === iDevices.pop()) { return true; }
}
return false;
}
$(document).on("scrollstop", debounce(function () {
if (is_iOS()) {
var yScrollPos = $(document).scrollTop();
if (yScrollPos > 200) {
$('#searchBarDiv').css('position', 'absolute');
$('#searchBarDiv').css('top', yScrollPos + 50 + 'px');
}
else {
$('#searchBarDiv').css('position', 'inherit');
}
}
},250,true));
$(document).on("scrollstart", debounce(function () {
if (is_iOS()) {
var yScrollPos = $(document).scrollTop();
if (yScrollPos > 200) {
$('#searchBarDiv').css('position', 'fixed');
$('#searchBarDiv').css('width', '100%');
$('#searchBarDiv').css('top', '50px');
}
}
},250,true));
প্রয়োজনীয়তা: স্টার্টরল এবং স্টপস্ক্রোল ফাংশনগুলি কাজ করার জন্য জ্যাকিউরি মোবাইল প্রয়োজন।
আঠালো উপাদান দ্বারা নির্মিত যে কোনও ল্যাগ মসৃণ করতে ডেবিউন অন্তর্ভুক্ত।
আইওএস 10-তে পরীক্ষা করা হয়েছে।