Меню для каталога

136
08 октября 2019, 01:40

Очень интересует реализация приведённого ниже меню-каталога на bootstrap 4. Может быть кто-то видел такое и есть примеры/готовое решение?

Видел такое меню-каталог на многих сайтах. Обычно оно в раскрытом состоянии и располагается слева в виде сайтбара. Но его можно свернуть. В карточке товара оно обычно чвёрнуто и только в шапке сайта слева надпись-кнопка - каталог, которая раскрывается в виде меню.

Answer 1

Вот примерно такой документ у меня получился, поискав инфу в Нете.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UE-Compatible" content="ie=edge">
    <title>Multylevel menu</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <script src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
    <link rel="stylesheet" href="css/bt.css">
</head>
<style>
    #menu2 {
        margin-left: 50px;
    }
    #menu3 {
        margin-left: 50px;
    }
</style>
<body>
<div class="dropdown">
    <button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown">
        Dropdown button
    </button>
    <div class="dropdown-menu noclose">
        <span class="dropdown-item">Item 1</span>
        <span class="dropdown-item dropdown-toggle btn btn-secondary collapse" data-toggle="collapse" data-target="#menu2">Item 2</span>
        <div class="dropdown-menu dropdown-collapse" id="menu2">
            <span class="dropdown-item">Item 2.1</span>
            <span class="dropdown-item dropdown-toggle btn btn-primary collapse" data-toggle="collapse" data-target="#menu3">Item 2.2</span>
            <div class="dropdown-menu dropdown-collapse" id="menu3">
                <span class="dropdown-item">Item 2.2.1</span>
                <span class="dropdown-item">Item 2.2.2</span>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">
    $(document).on("click.bs.dropdown.data-api", ".noclose", function (e) { e.stopPropagation() });
</script>
</body>
</html>

<head>

В <head> прописан сам Bootstrap 4.

Меню первого уровня

Дальше идёт само меню. Item 2 является .submenu, .collapse, .dropdown-toggler; data-toggle="collpase", даёт кнопке функционал. В data-target - прописан ID блока который мы собираемся открыть. Все эти атрибуты определяют наше подменю.

Меню второго уровня

Дальше идёт уже содержание самого подменю, указываем как обычное меню - .dropdown-menu и также .dropdown-collapse для того, чтобы оно скрывалось-раскрывалось.

Скрипт

И наконец строка jQuery, которая не даёт целому меню не закрыться при каких-то действиях внутри всего dropmenu. Скрипт обрабатывает класс .noclose, который мы записали в блоке, содержащий целое меню.

Стили

В <style> можно сделать сдвиг блока меню, создав визуализацию дерева.

Заключение

Единственный недостаток - как-то долго открывается подменю. Попробуйте сами покрутить, поставить может что-то. Надеюсь у Вас получиться)) сам попробую что-то подправить, найду, обязательно оповещу)).

Надеюсь помогло

Answer 2

HTML:

    <div class="row">
            <a id="dLabel" role="button" data-toggle="dropdown" class="btn btn-primary" data-target="#" target="_blank" rel="nofollow" href="/page.html">
                Dropdown <span class="caret"></span>
        <h2>Multi level dropdown menu in Bootstrap 3</h2>
        <hr>
        <div class="dropdown">
            </a>
            <ul class="dropdown-menu multi-level" role="menu" aria-labelledby="dropdownMenu">
              <li><a target="_blank" rel="nofollow" href="#">Some action</a></li>
              <li><a target="_blank" rel="nofollow" href="#">Some other action</a></li>
              <li class="divider"></li>
              <li class="dropdown-submenu">
                <a tabindex="-1" target="_blank" rel="nofollow" href="#">Hover me for more options</a>
                <ul class="dropdown-menu">
                  <li><a tabindex="-1" target="_blank" rel="nofollow" href="#">Second level</a></li>
                  <li class="dropdown-submenu">
                    <a target="_blank" rel="nofollow" href="#">Even More..</a>
                    <ul class="dropdown-menu">
                        <li><a target="_blank" rel="nofollow" href="#">3rd level</a></li>
                        <li><a target="_blank" rel="nofollow" href="#">3rd level</a></li>
                    </ul>
                  </li>
                  <li><a target="_blank" rel="nofollow" href="#">Second level</a></li>
                  <li><a target="_blank" rel="nofollow" href="#">Second level</a></li>
                </ul>
              </li>
            </ul>
        </div>
    </div>
</div>

CSS:

.dropdown-submenu {
    position: relative;
}
.dropdown-submenu>.dropdown-menu {
    top: 0;
    left: 100%;
    margin-top: -6px;
    margin-left: -1px;
    -webkit-border-radius: 0 6px 6px 6px;
    -moz-border-radius: 0 6px 6px;
    border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
    display: block;
}
.dropdown-submenu>a:after {
    display: block;
    content: " ";
    float: right;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
    border-width: 5px 0 5px 5px;
    border-left-color: #ccc;
    margin-top: 5px;
    margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
    border-left-color: #fff;
}
.dropdown-submenu.pull-left {
    float: none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
    left: -100%;
    margin-left: 10px;
    -webkit-border-radius: 6px 0 6px 6px;
    -moz-border-radius: 6px 0 6px 6px;
    border-radius: 6px 0 6px 6px;
}

Вместо ссылок можно использовать те самые картинки в указанном вами сайте

READ ALSO
OxyPlot нужно построить диаграмму по точкам

OxyPlot нужно построить диаграмму по точкам

Как в OxyPlot построить диаграмму по точкамесли есть у кого-нибудь примеры можете скинуть? есть просто точки и еще формула политропы и не знаю...

127
Не отображаются элементы на TabPage в TabControl C#

Не отображаются элементы на TabPage в TabControl C#

Дело в том, что когда я динамически создаю TabControl, а так же 2 TabPage на нем, отображаются элементы только на той TabPage, которая открывается первой...

117
Как в коде одного проекта решения инициировать сборку другого проекта?

Как в коде одного проекта решения инициировать сборку другого проекта?

В решение есть несколько проектов, и один из них (Net Framework Console) выполняет функцию публикации главного

125