আমি গতির স্ক্রোলিং এবং সবকিছু https://github.com/cubiq/iscrol এর অনুভূতি সহ iScrol এর সাহায্যে এই সমস্যার দুর্দান্ত সমাধান পেতে সক্ষম হয়েছি , এবং আমি বেশিরভাগই এটি অনুসরণ করেছি। আমার বাস্তবায়নের বিশদটি এখানে।
এইচটিএমএল:
আমি আমার লিখিত সামগ্রীর স্ক্রোলযোগ্য অঞ্চলটি আইএসক্রোল ব্যবহার করতে পারে এমন কয়েকটি ডিভগুলিতে আবৃত করেছি:
<div id="wrapper">
<div id="scroller">
... my scrollable content
</div>
</div>
সিএসএস:
আমি "স্পর্শ" এর জন্য মডার্নিজার ক্লাসটি কেবলমাত্র স্পর্শ ডিভাইসগুলিতে আমার শৈলীর পরিবর্তনের লক্ষ্যবস্তু করতে ব্যবহার করেছি (কারণ আমি কেবল স্পর্শে আইসক্রোল ইনস্ট্যান্টেশন করেছি)।
.touch #wrapper {
position: absolute;
z-index: 1;
top: 0;
bottom: 0;
left: 0;
right: 0;
overflow: hidden;
}
.touch #scroller {
position: absolute;
z-index: 1;
width: 100%;
}
জেএস:
আমি আইস্ক্রোল ডাউনলোড থেকে আইসক্রল-প্রোব.জেএস অন্তর্ভুক্ত করেছি এবং তারপরে নীচের মতো স্ক্রোলারটি সূচনা করেছি, যেখানে আপডেটপজিশন আমার ফাংশন যা নতুন স্ক্রোল অবস্থানের প্রতিক্রিয়া জানায়।
# coffeescript
if Modernizr.touch
myScroller = new IScroll('#wrapper', probeType: 3)
myScroller.on 'scroll', updatePosition
myScroller.on 'scrollEnd', updatePosition
স্ক্রোল অফসেটটি না দেখে এখনই বর্তমান অবস্থানটি পেতে আপনাকে মাইস্ক্রোলার ব্যবহার করতে হবে। এখানে http://markdalgleish.com/preferencesations/embracingtouch/ (একটি সুপার সহায়ক নিবন্ধ, তবে এখন কিছুটা পুরানো ) থেকে নেওয়া একটি ফাংশন এখানে দেওয়া হয়েছে
function getScroll(elem, iscroll) {
var x, y;
if (Modernizr.touch && iscroll) {
x = iscroll.x * -1;
y = iscroll.y * -1;
} else {
x = elem.scrollTop;
y = elem.scrollLeft;
}
return {x: x, y: y};
}
কেবলমাত্র অন্য গোটাচা মাঝে মধ্যেই আমার পৃষ্ঠার যে অংশটিতে আমি স্ক্রোল করার চেষ্টা করছিলাম সেটি হারিয়ে ফেলতাম এবং এটি স্ক্রোল করতে অস্বীকার করবে। যখনই আমি # র্যাপারের বিষয়বস্তুগুলি পরিবর্তন করেছি এবং আমার সমস্যার সমাধান করেছে তখনই আমার মাইক্রোলেলআরফ্রেশ () এ কিছু কল যুক্ত করতে হয়েছিল।
সম্পাদনা: অন্য গোটাচা হ'ল আইস্ক্রোল সমস্ত "ক্লিক" ইভেন্ট খায়। আমি আইস্ক্রোলটি একটি "ট্যাপ" ইভেন্ট প্রেরণ করার বিকল্পটি চালু করেছি এবং "ক্লিক" ইভেন্টগুলির পরিবর্তে সেগুলি পরিচালনা করেছি। সৌভাগ্যক্রমে স্ক্রোল এরিয়ায় আমার বেশি ক্লিক করার দরকার ছিল না, সুতরাং এটি কোনও বড় কথা ছিল না।
window.pageYOffset
নাdocument.body.scrollTop||document.documentElement.scrollTop
।