Плавная прокрутка в JavaScript: различные методы достижения плавной прокрутки

Чтобы добиться плавной прокрутки в JavaScript, можно использовать несколько методов. Вот некоторые из них:

  1. Использование свойства CSS scroll-behavior: вы можете установить для свойства scroll-behaviorзначение «сглаживание» на нужном элементе или . Элементы >htmlи bodyдля плавной прокрутки. Например:

    html, body {
    scroll-behavior: smooth;
    }
  2. Использование метода scrollIntoView(). Этот метод доступен для элементов DOM и может использоваться для плавной прокрутки элемента в области просмотра. Например:

    const element = document.getElementById('myElement');
    element.scrollIntoView({ behavior: 'smooth' });
  3. Использование метода animate(). Вы можете использовать метод animate()для анимации прокрутки, изменив свойство scrollTop. документа или определенного элемента в течение определенного периода времени. Вот пример:

    const scrollDuration = 500; // Duration in milliseconds
    const targetPosition = 500; // Target scroll position
    const currentPosition = document.documentElement.scrollTop || document.body.scrollTop;
    const startTime = performance.now();
    function scrollStep(timestamp) {
    const elapsed = timestamp - startTime;
    const progress = Math.min(elapsed / scrollDuration, 1);
    const ease = easingFunction(progress); // Use an easing function for smooth animation
    window.scrollTo(0, currentPosition + (targetPosition - currentPosition) * ease);
    if (elapsed < scrollDuration) {
    window.requestAnimationFrame(scrollStep);
    }
    }
    window.requestAnimationFrame(scrollStep);
  4. Использование библиотеки JavaScript. Существует несколько библиотек JavaScript, которые предоставляют дополнительные функции и возможности настройки для плавной прокрутки, например «SmoothScroll» или «ScrollMagic».