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

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

Добавление кнопки для плавного прокручивания страницы наверх — это простой, но полезный элемент для улучшения пользовательского опыта на веб-сайте. В этом материале рассмотрим, как создать такую кнопку, используя 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;
    }
}

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