Как реализовать выезжающее горизонтальное меню на JavaScript


Веб-разработка постоянно развивается, и с каждым днем появляются новые и интересные техники, позволяющие сделать сайты более удобными и функциональными. Одной из таких техник является использование выезжающего горизонтального меню при клике на гамбургер.

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

Однако реализация выезжающего горизонтального меню на чистом JavaScript может показаться немного сложной задачей. В этой статье я покажу вам простой и эффективный способ создания такого меню без использования сторонних библиотек и фреймворков.

Пример создания выезжающего горизонтального меню на чистом JavaScript

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

<div class="menu"><button id="hamburger">☰</button><ul id="menu-list"><li><a href="#">Главная</a></li><li><a href="#">О нас</a></li><li><a href="#">Услуги</a></li><li><a href="#">Контакты</a></li></ul></div>

Теперь перейдем к JavaScript-коду, который обеспечивает функциональность нашего меню. Создадим обработчик события, который будет вызываться при клике на кнопку гамбургер. Внутри этого обработчика мы будем добавлять и удалять класс «open» для меню, чтобы задать стили открытого и закрытого состояний.

var hamburger = document.getElementById("hamburger");var menu = document.getElementById("menu-list");hamburger.addEventListener("click", function() {menu.classList.toggle("open");});

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

.menu {position: relative;}#menu-list {display: none;position: absolute;top: 100%;left: 0;width: 100%;background-color: #f5f5f5;padding: 10px;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);}#menu-list.open {display: block;-webkit-transition: top 0.3s ease-in-out;transition: top 0.3s ease-in-out;}#menu-list li {margin-bottom: 10px;}#menu-list li a {color: #333;text-decoration: none;}#hamburger {background-color: transparent;border: none;font-size: 20px;cursor: pointer;}

Теперь наше выезжающее горизонтальное меню полностью готово к использованию! При клике на кнопку гамбургер, меню будет открываться с плавной анимацией, а при повторном клике — закрываться. Это простой и элегантный способ добавить функциональность навигации на веб-сайт без использования сторонних библиотек и фреймворков.

Разметка HTML и стилизация элементов

Для создания выезжающего горизонтального меню на чистом Javascript, необходимо правильно структурировать HTML-разметку и применить соответствующие стили.

Основными элементами, которые следует использовать для создания выезжающего меню, являются:

  • Кнопка гамбургера (обычно представляет собой иконку с тремя горизонтальными линиями);
  • Контейнер для меню, который будет выезжать при клике на кнопку гамбургера;
  • Список пунктов меню, которые будут включены в контейнер для меню;

HTML-разметка для выезжающего меню может выглядеть примерно так:

<button id="toggleMenuButton"></button><div id="menu"><ul id="menuItems"><li>Пункт меню 1</li><li>Пункт меню 2</li><li>Пункт меню 3</li></ul></div>

Для стилизации элементов можно использовать CSS или добавлять стили с помощью Javascript. Ниже приведен пример CSS-стилей для создания эффекта выезжающего меню:

#menu {position: absolute;top: 0;left: -100%;width: 100%;height: 100%;background-color: #f1f1f1;transition: left 0.3s ease-in-out;}#menu.active {left: 0;}#menuItems {margin: 0;padding: 0;list-style-type: none;}#menuItems li {padding: 10px;}#toggleMenuButton {position: fixed;top: 20px;left: 20px;width: 40px;height: 30px;background-color: transparent;border: none;cursor: pointer;}#toggleMenuButton:before {content: "";position: absolute;top: 10px;left: 0;width: 100%;height: 2px;background-color: #333;}#toggleMenuButton:after {content: "";position: absolute;top: 20px;left: 0;width: 100%;height: 2px;background-color: #333;}

Выезжающее горизонтальное меню создано! Теперь остается только добавить необходимую функциональность с помощью Javascript.

Написание JavaScript функции для отображения/скрытия меню

Для реализации выезжающего горизонтального меню при клике на гамбургер веб-сайте необходимо написать JavaScript функцию, которая будет отображать и скрывать меню.

Вот пример такой функции:

function toggleMenu() {var menu = document.getElementById("menu");if (menu.style.display === "none") {menu.style.display = "block";} else {menu.style.display = "none";}}

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

Если свойство display равно "none", это означает, что меню скрыто, и функция задает значение "block" свойству display элемента, чтобы отобразить меню. В противном случае, если меню уже отображается, функция задает значение "none" свойству display, чтобы скрыть меню.

Чтобы вызвать функцию при клике на гамбургер, можно добавить атрибут onclick="toggleMenu()" к элементу гамбургера. Например:

<div id="hamburger" onclick="toggleMenu()"><span></span><span></span><span></span></div>

В этом примере есть элемент <div> с идентификатором «hamburger», который представляет гамбургер. Когда на него кликают, вызывается функция toggleMenu().

Теперь меню будет открываться и закрываться при клике на гамбургер, благодаря написанной JavaScript функции. С помощью стилей можно дополнительно настроить внешний вид и анимацию меню.

Обработка события клика на иконку гамбургера

Для создания выезжающего горизонтального меню при клике на иконку гамбургера на чистом JavaScript необходимо добавить обработчик события клика на иконку. Для этого можно использовать метод addEventListener и передать в него функцию обработчика события.

Пример кода для обработки события клика на иконку гамбургера:


var hamburgerIcon = document.getElementById('hamburger-icon');
hamburgerIcon.addEventListener('click', function() {
// код для открытия/закрытия меню
});

В данном примере используется метод getElementById для получения элемента с идентификатором hamburger-icon. Затем на полученном элементе вызывается метод addEventListener для добавления обработчика события клика.

Внутри функции-обработчика можно реализовать логику открытия и закрытия меню. Например, можно добавить/удалить класс или стиль элементу меню, чтобы изменить его видимость или позицию.

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

Подключение скрипта и проверка работоспособности

Для создания выезжающего горизонтального меню при клике на гамбургер вам понадобится использовать JavaScript. Для начала, необходимо подключить скрипт к вашему HTML-документу.

Для этого вы можете использовать тег <script> с атрибутом src, указывающим путь к файлу JavaScript:

HTMLJavaScript
<script src="script.js"></script>
/* Содержимое вашего скрипта */

Здесь script.js — это имя файла вашего скрипта, который должен находиться в той же папке, что и HTML-файл.

alert("Скрипт успешно подключен!");

При открытии HTML-файла в браузере вы должны увидеть всплывающее окно с сообщением «Скрипт успешно подключен!». Если вы видите это сообщение, значит скрипт работает корректно. Если всплывающее окно не появляется, проверьте правильность подключения скрипта и возможные ошибки в коде.

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

Добавить комментарий

Вам также может понравиться