Как сделать кнопку для плавного прокручивания страницы наверх?

Как сделать кнопку для плавного прокручивания страницы наверх?

Как сделать кнопку для плавного прокручивания страницы наверх?

Добавление кнопки для плавного прокручивания страницы наверх — это простой, но полезный элемент для улучшения пользовательского опыта на веб-сайте. В этой статье рассмотрим, как создать такую кнопку, используя HTML, CSS и JavaScript.

Шаг 1: Верстка HTML

Первым шагом будет создание структуры HTML. Добавим кнопку в конец страницы, чтобы она отображалась всегда внизу.

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Скролл наверх</title>

    <link rel="stylesheet" href="styles.css">

</head>

<body>



    <div class="content">

        <!-- Длинный контент страницы -->

        <h1>Пример длинного контента</h1>

        <p>Много текста...</p>

        <p>Много текста...</p>

        <p>Много текста...</p>

    </div>



    <!-- Кнопка прокрутки наверх -->

    <button id="scrollTopBtn" class="scroll-top-btn">Наверх</button>



    <script src="script.js"></script>

</body>

</html>

Шаг 2: Стилизация кнопки с помощью CSS

Теперь создадим стили для нашей кнопки, чтобы она выглядела аккуратно и всегда оставалась видимой при прокрутке страницы.

/* Основной стиль страницы */

body {

    font-family: Arial, sans-serif;

}



.content {

    height: 2000px; /* Длинный контент */

    padding: 20px;

}



/* Стиль кнопки "Наверх" */

.scroll-top-btn {

    position: fixed;

    bottom: 40px;

    right: 40px;

    background-color: #3498db;

    color: white;

    border: none;

    padding: 10px 20px;

    border-radius: 5px;

    cursor: pointer;

    font-size: 16px;

    display: none; /* Кнопка скрыта по умолчанию */

    transition: opacity 0.3s;

}



.scroll-top-btn:hover {

    background-color: #2980b9;

}

Шаг 3: Добавление JavaScript для прокрутки

Теперь добавим логику с помощью JavaScript для того, чтобы кнопка появлялась при прокрутке страницы и выполняла плавную прокрутку наверх при клике.

// Получаем кнопку по ID

const scrollTopBtn = document.getElementById("scrollTopBtn");



// Добавляем событие на прокрутку окна

window.onscroll = function () {

    toggleScrollTopBtn();

};



// Функция для отображения или скрытия кнопки

function toggleScrollTopBtn() {

    if (document.body.scrollTop > 300 || document.documentElement.scrollTop > 300) {

        scrollTopBtn.style.display = "block";

    } else {

        scrollTopBtn.style.display = "none";

    }

}



// Добавляем обработчик события для плавной прокрутки наверх

scrollTopBtn.addEventListener("click", function () {

    window.scrollTo({

        top: 0,

        behavior: "smooth" // Плавная прокрутка

    });

});

Шаг 4: Детали работы скрипта

  • Отслеживание прокрутки: Функция window.onscroll запускается каждый раз, когда пользователь прокручивает страницу. Она вызывает функцию toggleScrollTopBtn, которая проверяет, сколько пикселей было прокручено вниз, и отображает или скрывает кнопку на основе этого значения.

  • Плавная прокрутка: Когда пользователь кликает на кнопку, срабатывает событие scrollTo с параметрами top: 0 (прокрутка в начало страницы) и behavior: «smooth» для плавного скроллинга.

  • Шаг 5: Адаптивность

    Для лучшего пользовательского опыта можно сделать кнопку адаптивной для разных устройств, например, уменьшив её размер на мобильных устройствах:

    @media screen and (max-width: 600px) {

        .scroll-top-btn {

            bottom: 20px;

            right: 20px;

            padding: 8px 16px;

            font-size: 14px;

        }

    }

    Таким образом мы создали кнопку для плавного скроллинга наверх, которая появляется, когда пользователь прокрутил страницу вниз. Этот элемент улучшит навигацию по сайту, особенно на страницах с длинным контентом.

    Источник

    НЕТ КОММЕНТАРИЕВ

    Оставить комментарий