Приветствую всех, кто читает данную статью! Сегодня мы разберем с вами как с помощью пользовательского компонента Offcanvas Bootstrap создать удобное и нестандартное меню для мобильных устройств.
Я расскажу вам, что это за шаблон, опишу его основные инструменты работы, предоставлю полезные ссылки для подробного изучения технологии и конечно же предоставлю конкретные примеры программного кода. Приступим же!
Знакомство с Offcanvas menu
Offcanvas menu разрабатывал Phil Hughes (более известный под логином iamphill) и пару лет назад выложил проект в своем профиле на GitHub. Найти его можно по ссылке [urlspan]https://github.com/iamphill/Bootstrap-Offcanvas[/urlspan]. Там же создатель разместил и документацию с подробным описанием технологии на английском языке.
Благодаря изучаемому шаблону на вашем сайте под смартфоны можно разместить очень простое и легко реализуемое навигационное меню, работающее через Bootstrap 3.
Программный код компонента базируется на конструкции объявления встроенной в фреймворк навигационной панели, т.е. на Navigation Bar. Однако к ней добавляются специальные классы, определяющие, что в данном случае используется offcanvas.
Установка компонента
Для использования изучаемого пользовательского шаблона, необходимо выполнить несколько действий:
- Скачать с указанной ссылки установочный пакет;
- Распаковать файлы в одну папку;
- Среди всех документов найти bootstrap.offcanvas.min.css и bootstrap.offcanvas.min.js и скопировать их в соответствующие каталоги вашего проекта;
- В хедере html-файла необходимо вставить следующие скрипты:
<link rel="stylesheet" href="путь_к_нужной_папке/bootstrap.offcanvas.min.css">
<script src=" путь_к_нужной_папке/bootstrap.offcanvas.min.js"></script>
Здесь хочу обратить ваше внимание на несколько важных деталей. По правилам подключения дополнительных ресурсов вначале должны быть прописаны ссылки на стили, после скрипты с подключением языка JavaScript и/или библиотеки jQuery, а уж только потом скрипты для bootstrap.js, bootstrap.offcanvas.min.js и других дополнений.
Теперь вы можете в полной мере пользоваться данным компонентом и настраивать его под свои нужды.Программная реализация шаблона
Ну теперь перейдем к теоретическому и практическому разбору инструмента. И начнем с теоретической части.
Как и при реализации navbar вам необходимо инициализировать триггер. Это может быть кнопка, ссылка или другой элемент языка разметки html. Далее внутри триггера необходимо установить отображение трех полосок (гамбургер меню). И в следующем блоке создать само меню.
Главное отличие navbar от рассматриваемого механизма заключается в изменении значений атрибутов data-target, data-toggle и указании класса offcanvas-toggle.
Давайте перейдем к коду.
Для начала я сверстал привычную для вас навигационную панель с четырьмя пунктами меню.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Example</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <style> .navbar { margin: 0; border-radius: 0; } </style> </head> <body> <nav class="navbar navbar-inverse" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavb"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Логотип</a> </div> <div class="collapse navbar-collapse" id="myNavb"> <ul class="nav navbar-nav"> <li class="active"><a href="#">Главная</a></li> <li><a href="#">О нас</a></li> <li><a href="#">Фотогалерея</a></li> <li><a href="#">Контакты</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Войти</a></li> </ul> </div> </div> </nav> </body> </html> |
А теперь необходимо внести несколько изменений для:
- Объявления триггера. Для этого измените строку кода на прикрепленную ниже: <button type="button" class="navbar-toggle offcanvas-toggle" data-toggle="offcanvas" data-target="# myNavb">
- Всех тегов <span>. Их нужно поместить в общий элемент с классом sr- only. Это будет выглядеть следующим образом:
1 2 3 4 5 6
<span class="sr-only">Toggle navigation</span> <span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </span>
- Связи кнопки с перечнем пунктов. Для этого необходимо все классы с collapse заменить на «navbar-offcanvas navbar-offcanvas-touch».
При этом сохраняются все стандартные возможности разметки элементов на странице. Вы можете размещать триггер как с левой стороны блока меню, так и справой. А саму панель отображать как вверху (navbar-fixed-top), так и внизу (navbar-fixed-bottom).
Если вам понравилась статья, то вступайте в группу подписчиков моего блога и делитесь полученными знаниями с коллегами и друзьями. А я желаю вам удачи в обучении. До скорой встречи!
Пока-пока!
С уважением, Роман Чуешов
Здравствуйте, спасибо за статью, была полезна. Скажите как вы так красиво выводите код?