├── mobile.png
├── desktop.png
├── README.md
├── js
└── bootstrap-4-hover-navbar.js
├── css
└── bootstrap-4-hover-navbar.css
└── index.html
/mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bootstrapthemesco/bootstrap-4-multi-dropdown-hover-navbar/HEAD/mobile.png
--------------------------------------------------------------------------------
/desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bootstrapthemesco/bootstrap-4-multi-dropdown-hover-navbar/HEAD/desktop.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Bootstrap 4 Responsive hover Navbar with Multiple Dropdowns
2 | ==========================
3 |
4 |
5 | Tested on Bootstrap 4.0.0-alpha.6 and jQuery v3.1.1. Check this [Demo](https://bootstrapthemes.co/demo/resource/bootstrap-4-multi-dropdown-hover-navbar)
6 |
7 |
8 | ## In Desktop
9 | 
10 |
11 |
12 | ## Mobile device
13 | 
14 |
15 |
16 | ==========================
17 |
18 |
Usage
19 |
20 | 1. Add css header for caret right icon ``````
21 | 2. Add js for navbar events after include jquery and bootstrap js files ``````
22 |
23 |
24 |
25 | Credits: fontenele
--------------------------------------------------------------------------------
/js/bootstrap-4-hover-navbar.js:
--------------------------------------------------------------------------------
1 |
2 | /*!
3 | * Bootstrap 4 multi dropdown navbar ( https://bootstrapthemes.co/demo/resource/bootstrap-4-multi-dropdown-navbar/ )
4 | * Copyright 2017.
5 | * Licensed under the GPL license
6 | */
7 |
8 |
9 | $( document ).ready( function () {
10 | $( '.dropdown-menu a.dropdown-toggle' ).on( 'click', function ( e ) {
11 | var $el = $( this );
12 | var $parent = $( this ).offsetParent( ".dropdown-menu" );
13 | if ( !$( this ).next().hasClass( 'show' ) ) {
14 | $( this ).parents( '.dropdown-menu' ).first().find( '.show' ).removeClass( "show" );
15 | }
16 | var $subMenu = $( this ).next( ".dropdown-menu" );
17 | $subMenu.toggleClass( 'show' );
18 |
19 | $( this ).parent( "li" ).toggleClass( 'show' );
20 |
21 | $( this ).parents( 'li.nav-item.dropdown.show' ).on( 'hidden.bs.dropdown', function ( e ) {
22 | $( '.dropdown-menu .show' ).removeClass( "show" );
23 | } );
24 |
25 | if ( !$parent.parent().hasClass( 'navbar-nav' ) ) {
26 | $el.next().css( { "top": $el[0].offsetTop, "left": $parent.outerWidth() - 4 } );
27 | }
28 |
29 | return false;
30 | } );
31 | } );
--------------------------------------------------------------------------------
/css/bootstrap-4-hover-navbar.css:
--------------------------------------------------------------------------------
1 |
2 | /*=-====Bootstrapthemes.co btco-hover-menu=====*/
3 |
4 | .navbar-light .navbar-nav .nav-link {
5 | color: rgb(64, 64, 64);
6 | }
7 | .btco-hover-menu a , .navbar > li > a {
8 | text-transform: capitalize;
9 | padding: 10px 15px;
10 | }
11 | .btco-hover-menu .active a,
12 | .btco-hover-menu .active a:focus,
13 | .btco-hover-menu .active a:hover,
14 | .btco-hover-menu li a:hover,
15 | .btco-hover-menu li a:focus ,
16 | .navbar>.show>a, .navbar>.show>a:focus, .navbar>.show>a:hover{
17 | color: #000;
18 | background: transparent;
19 | outline: 0;
20 | }
21 |
22 |
23 |
24 | /*submenu style start from here*/
25 |
26 |
27 | .dropdown-menu {
28 | padding: 0px 0;
29 | margin: 0 0 0;
30 | border: 0px solid transition !important;
31 | border: 0px solid rgba(0,0,0,.15);
32 | border-radius: 0px;
33 | -webkit-box-shadow: none !important;
34 | box-shadow: none !important;
35 |
36 | }
37 |
38 | /*first level*/
39 | .btco-hover-menu .collapse ul > li:hover > a{background: #f5f5f5;}
40 | .btco-hover-menu .collapse ul ul > li:hover > a, .navbar .show .dropdown-menu > li > a:focus, .navbar .show .dropdown-menu > li > a:hover{background: #fff;}
41 | /*second level*/
42 | .btco-hover-menu .collapse ul ul ul > li:hover > a{background: #fff;}
43 |
44 | /*third level*/
45 | .btco-hover-menu .collapse ul ul, .btco-hover-menu .collapse ul ul.dropdown-menu{background:#f5f5f5;}
46 | .btco-hover-menu .collapse ul ul ul, .btco-hover-menu .collapse ul ul ul.dropdown-menu{background:#f5f5f5}
47 | .btco-hover-menu .collapse ul ul ul ul, .btco-hover-menu .collapse ul ul ul ul.dropdown-menu{background:#f5f5f5}
48 |
49 | /*Drop-down menu work on hover*/
50 | .btco-hover-menu{background: none;margin: 0;padding: 0;min-height:20px}
51 |
52 | @media only screen and (max-width: 991px) {
53 | .btco-hover-menu .show > .dropdown-toggle::after{
54 | transform: rotate(-90deg);
55 | }
56 | }
57 | @media only screen and (min-width: 991px) {
58 |
59 | .btco-hover-menu .collapse ul li{position:relative;}
60 | .btco-hover-menu .collapse ul li:hover> ul{display:block}
61 | .btco-hover-menu .collapse ul ul{position:absolute;top:100%;left:0;min-width:250px;display:none}
62 | /*******/
63 | .btco-hover-menu .collapse ul ul li{position:relative}
64 | .btco-hover-menu .collapse ul ul li:hover> ul{display:block}
65 | .btco-hover-menu .collapse ul ul ul{position:absolute;top:0;left:100%;min-width:250px;display:none}
66 | /*******/
67 | .btco-hover-menu .collapse ul ul ul li{position:relative}
68 | .btco-hover-menu .collapse ul ul ul li:hover ul{display:block}
69 | .btco-hover-menu .collapse ul ul ul ul{position:absolute;top:0;left:-100%;min-width:250px;display:none;z-index:1}
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Bootstrap 4 Navbar with hover multi dropdown
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
103 |
104 |
105 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
--------------------------------------------------------------------------------