Великий Путь Вебмастера от идеи до интернет бизнеса
Блог Романа Чуешова
Начни зарабатывать в интернете на создании сайтов и блогов

Изучаем offcanvas bootstrap с помощью которого создадим уникальное адаптивное меню

 

Приветствую всех, кто читает данную статью! Сегодня мы разберем с вами как с помощью пользовательского компонента Offcanvas Bootstrap создать удобное и нестандартное меню для мобильных устройств.

Я расскажу вам, что это за шаблон, опишу его основные инструменты работы, предоставлю полезные ссылки для подробного изучения технологии и конечно же предоставлю конкретные примеры программного кода. Приступим же!

Знакомство с Offcanvas menu

Offcanvas menu разрабатывал Phil Hughes (более известный под логином iamphill) и пару лет назад выложил проект в своем профиле на GitHub. Найти его можно по ссылке [urlspan]https://github.com/iamphill/Bootstrap-Offcanvas[/urlspan]. Там же создатель разместил и документацию с подробным описанием технологии на английском языке.

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

Программный код компонента базируется на конструкции объявления встроенной в фреймворк навигационной панели, т.е. на Navigation Bar. Однако к ней добавляются специальные классы, определяющие, что в данном случае используется offcanvas.

Установка компонента

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

  1. Скачать с указанной ссылки установочный пакет;
  2. Распаковать файлы в одну папку;
  3. Среди всех документов найти bootstrap.offcanvas.min.css и bootstrap.offcanvas.min.js и скопировать их в соответствующие каталоги вашего проекта;
  4. В хедере html-файла необходимо вставить следующие скрипты:

<link rel="stylesheet" href="путь_к_нужной_папке/bootstrap.offcanvas.min.css">

<script src=" путь_к_нужной_папке/bootstrap.offcanvas.min.js"></script>

Здесь хочу обратить ваше внимание на несколько важных деталей. По правилам подключения дополнительных ресурсов вначале должны быть прописаны ссылки на стили, после скрипты с подключением языка JavaScript и/или библиотеки jQuery, а уж только потом скрипты для bootstrap.js, bootstrap.offcanvas.min.js и других дополнений.

Теперь вы можете в полной мере пользоваться данным компонентом и настраивать его под свои нужды.

Программная реализация шаблона

Canvas tablet

Ну теперь перейдем к теоретическому и практическому разбору инструмента. И начнем с теоретической части.

Как и при реализации 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>

А теперь необходимо внести несколько изменений для:

  1. Объявления триггера. Для этого измените строку кода на прикрепленную ниже: <button type="button" class="navbar-toggle offcanvas-toggle" data-toggle="offcanvas" data-target="# myNavb">
  2. Всех тегов <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>
  3. Связи кнопки с перечнем пунктов. Для этого необходимо все классы с collapse заменить на «navbar-offcanvas navbar-offcanvas-touch».

При этом сохраняются все стандартные возможности разметки элементов на странице. Вы можете размещать триггер как с левой стороны блока меню, так и справой. А саму панель отображать как вверху (navbar-fixed-top), так и внизу (navbar-fixed-bottom).

Если вам понравилась статья, то вступайте в группу подписчиков моего блога и делитесь полученными знаниями с коллегами и друзьями. А я желаю вам удачи в обучении. До скорой встречи!

Пока-пока!

С уважением, Роман Чуешов

Прочитано: 831 раз
Этот блог уже читают
читай и ты!
Оставить коментарий
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o:
  • Лена

    Здравствуйте, спасибо за статью, была полезна. Скажите как вы так красиво выводите код?

    27.05.2019 в 09:16