তাদেরকে এখানে মানুষ কি ইঙ্গিত করা হয় পক্ষান্তরে আমি তোমাদের বলতে চাই না একটি প্লাগইন ব্যবহার করেন আপনি পদক্ষেপ সজীব করতে চাই। মসৃণ ব্যবহারকারীর অভিজ্ঞতার জন্য কেবল অ্যানিমেটেড স্ক্রোলটপই যথেষ্ট নয়। যুক্তির জন্য এখানে আমার উত্তর দেখুন ।
আমি কয়েক বছর ধরে অনেকগুলি প্লাগইন চেষ্টা করেছি, তবে শেষ পর্যন্ত একটি নিজে লিখেছি। আপনি এটি একটি স্পিন দিতে চাইতে পারেন: jQuery.scrollable । এটি ব্যবহার করে, স্ক্রোল অ্যাকশন হয়ে যায়
$container.scrollTo( targetPosition );
কিন্তু এখানেই শেষ নয়. আমাদের লক্ষ্য অবস্থানও ঠিক করতে হবে। অন্যান্য জবাবগুলিতে আপনি যে গণনাটি দেখছেন,
$target.offset().top - $container.offset().top + $container.scrollTop()
বেশিরভাগ কাজ করে তবে সম্পূর্ণ সঠিক নয়। এটি স্ক্রোল ধারকটির সীমানা সঠিকভাবে পরিচালনা করে না। লক্ষ্য উপাদানটি সীমানার আকার দ্বারা খুব বেশি উপরে উপরে স্ক্রোল করা হয়। এখানে একটি ডেমো রয়েছে।
অতএব, লক্ষ্য অবস্থান গণনা করার একটি ভাল উপায়
var target = $target[0],
container = $container[0];
targetPosition = $container.scrollTop() + target.getBoundingClientRect().top - container.getBoundingClientRect().top - container.clientTop;
আবার ডেমোটিকে কার্যত দেখতে দেখুন।
কোনও ফাংশনের জন্য যা লক্ষ্য অবস্থানটি দেয় এবং উইন্ডো এবং নন-উইন্ডো স্ক্রোল পাত্রে উভয়ের জন্যই কাজ করে, এই सारটিটি নির্বিঘ্নে ব্যবহার করুন । সেখানে মন্তব্যগুলি অবস্থান কীভাবে গণনা করা হয় তা ব্যাখ্যা করে।
শুরুতে, আমি বলেছি যে অ্যানিমেটেড স্ক্রোলিংয়ের জন্য একটি প্লাগইন ব্যবহার করা ভাল । আপনার কোনও প্লাগইন লাগবে না, তবে যদি আপনি কোনও সংকেত ছাড়াই লক্ষ্যটিতে যেতে চান। এর জন্য @ জেমসের উত্তর দেখুন , তবে নিশ্চিত করুন যে ধারকটির চারপাশে কোনও সীমানা থাকলে আপনি লক্ষ্য অবস্থানটি সঠিকভাবে গণনা করেছেন।