پرسش

چجوری اسکرول نرم و روان رو هنگام کلیک روی لینک‌های انکر (Anchor) پیاده‌سازی کنم؟

smooth-scrolling-when-clicking-an-anchor-link

من چندتا لینک انکر تو صفحه دارم که وقتی کاربر روشون کلیک می‌کنه، صفحه باید به‌سمت انکر موردنظر اسکرول بشه. اما می‌خوام این اسکرول نرم و روان باشه. آیا راهی برای انجام این کار هست که با جاوااسکریپت یا jQuery انجام بشه؟

1403/06/06
پاسخ
محمدامین سعیدی راد
بیوگرافی محمدامین سعیدی راد

برای اسکرول نرم به لینک‌های انکر، دو راه اصلی داری: استفاده از CSS یا جاوااسکریپت. اگر مرورگرهای مدرن رو هدف قرار دادی، می‌تونی به‌سادگی با اضافه کردن کد زیر به CSS این کار رو انجام بدی:

html {
scroll-behavior: smooth;
}

ولی اگه می‌خوای مرورگرهای قدیمی‌تر رو هم پشتیبانی کنی، باید از جاوااسکریپت استفاده کنی:

document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function(e) {
         e.preventDefault();
         document.querySelector(this.getAttribute('href')).scrollIntoView({
         behavior: 'smooth'
      });
   });
});

این روش‌ها بهت کمک می‌کنن تا تجربه کاربری بهتری رو ایجاد کنی.

 

پاسخ: 1403/06/06
آخرین آپدیت: 1403/08/13