Как создать плавный скроллинг по якорным ссылкам с помощью CSS и JavaScript

Как создать плавный скроллинг по якорным ссылкам с помощью CSS и JavaScript


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

Шаг 1: HTML структура

Сначала создадим базовую 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>
    <header>
        <nav>
            <ul>
                <li><a href="#section1">Раздел 1</a></li>
                <li><a href="#section2">Раздел 2</a></li>
                <li><a href="#section3">Раздел 3</a></li>
            </ul>
        </nav>
    </header>

    <section id="section1">
        <h2>Раздел 1</h2>
        <p>Контент раздела 1.</p>
    </section>

    <section id="section2">
        <h2>Раздел 2</h2>
        <p>Контент раздела 2.</p>
    </section>

    <section id="section3">
        <h2>Раздел 3</h2>
        <p>Контент раздела 3.</p>
    </section>

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

Шаг 2: CSS стилизация

Добавим базовые стили для нашего макета.

/* styles.css */
body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
}

header {
    background: #333;
    color: #fff;
    padding: 1rem;
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
}

header ul {
    list-style: none;
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;
}

header ul li {
    margin: 0 1rem;
}

header ul li a {
    color: #fff;
    text-decoration: none;
}

section {
    padding: 100px 20px;
    margin-top: 60px;
}

section:nth-of-type(odd) {
    background: #f4f4f4;
}

section:nth-of-type(even) {
    background: #e4e4e4;
}

Шаг 3: JavaScript для плавного скроллинга

Теперь добавим скрипт для плавного скроллинга.

// script.js
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function(e) {
        e.preventDefault();

        document.querySelector(this.getAttribute('href')).scrollIntoView({
            behavior: 'smooth'
        });
    });
});

Заключение

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

Если у вас есть вопросы или предложения, пишите их в комментариях. Удачного кодинга! 🚀

Report Page