How to slide nav bar from left instead from top?

前端 未结 9 1747
闹比i
闹比i 2020-12-02 18:49

Bootstrap supports toggling a navbar from the top. How can I slide it from the left when the screen-size is small?

For example:

In the screenshot pr

9条回答
  •  天命终不由人
    2020-12-02 19:44

    Without Plugin, We can do this

    See The LINK

    Bootstrap multi-level responsive menu with left side slide toggle for mobile devices

    $('[data-toggle="slide-collapse"]').on('click', function() {
      $navMenuCont = $($(this).data('target'));
      $navMenuCont.animate({
        'width': 'toggle'
      }, 350);
      $(".menu-overlay").fadeIn(500);
    });
    
    $(".menu-overlay").click(function(event) {
      $(".navbar-toggle").trigger("click");
      $(".menu-overlay").fadeOut(500);
    });
    
    // if ($(window).width() >= 767) {
    //     $('ul.nav li.dropdown').hover(function() {
    //         $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
    //     }, function() {
    //         $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
    //     });
    
    //     $('ul.nav li.dropdown-submenu').hover(function() {
    //         $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
    //     }, function() {
    //         $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
    //     });
    
    
    //     $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    //         event.preventDefault();
    //         event.stopPropagation();
    //         $(this).parent().siblings().removeClass('open');
    //         $(this).parent().toggleClass('open');
    //         $('b', this).toggleClass("caret caret-up");
    //     });
    // }
    
    // $(window).resize(function() {
    //     if( $(this).width() >= 767) {
    //         $('ul.nav li.dropdown').hover(function() {
    //             $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
    //         }, function() {
    //             $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
    //         });
    //     }
    // });
    
    var windowWidth = $(window).width();
    if (windowWidth > 767) {
      // $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
      //     event.preventDefault();
      //     event.stopPropagation();
      //     $(this).parent().siblings().removeClass('open');
      //     $(this).parent().toggleClass('open');
      //     $('b', this).toggleClass("caret caret-up");
      // });
    
      $('ul.nav li.dropdown').hover(function() {
        $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
      }, function() {
        $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
      });
    
      $('ul.nav li.dropdown-submenu').hover(function() {
        $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
      }, function() {
        $(this).find('>.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
      });
    
    
      $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
        event.preventDefault();
        event.stopPropagation();
        $(this).parent().siblings().removeClass('open');
        $(this).parent().toggleClass('open');
        // $('b', this).toggleClass("caret caret-up");
      });
    }
    if (windowWidth < 767) {
      $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
        event.preventDefault();
        event.stopPropagation();
        $(this).parent().siblings().removeClass('open');
        $(this).parent().toggleClass('open');
        // $('b', this).toggleClass("caret caret-up");
      });
    }
    
    // $('.dropdown a').append('Some text');
    @media only screen and (max-width: 767px) {
      #slide-navbar-collapse {
        position: fixed;
        top: 0;
        left: 15px;
        z-index: 999999;
        width: 280px;
        height: 100%;
        background-color: #f9f9f9;
        overflow: auto;
        bottom: 0;
        max-height: inherit;
      }
      .menu-overlay {
        display: none;
        background-color: #000;
        bottom: 0;
        left: 0;
        opacity: 0.5;
        filter: alpha(opacity=50);
        /* IE7 & 8 */
        position: fixed;
        right: 0;
        top: 0;
        z-index: 49;
      }
      .navbar-fixed-top {
        position: initial !important;
      }
      .navbar-nav .open .dropdown-menu {
        background-color: #ffffff;
      }
      ul.nav.navbar-nav li {
        border-bottom: 1px solid #eee;
      }
      .navbar-nav .open .dropdown-menu .dropdown-header,
      .navbar-nav .open .dropdown-menu>li>a {
        padding: 10px 20px 10px 15px;
      }
    }
    
    .dropdown-submenu {
      position: relative;
    }
    
    .dropdown-submenu .dropdown-menu {
      top: 0;
      left: 100%;
      margin-top: -1px;
    }
    
    li.dropdown a {
      display: block;
      position: relative;
    }
    
    li.dropdown>a:before {
      content: "\f107";
      font-family: FontAwesome;
      position: absolute;
      right: 6px;
      top: 5px;
      font-size: 15px;
    }
    
    li.dropdown-submenu>a:before {
      content: "\f107";
      font-family: FontAwesome;
      position: absolute;
      right: 6px;
      top: 10px;
      font-size: 15px;
    }
    
    ul.dropdown-menu li {
      border-bottom: 1px solid #eee;
    }
    
    .dropdown-menu {
      padding: 0px;
      margin: 0px;
      border: none !important;
    }
    
    li.dropdown.open {
      border-bottom: 0px !important;
    }
    
    li.dropdown-submenu.open {
      border-bottom: 0px !important;
    }
    
    li.dropdown-submenu>a {
      font-weight: bold !important;
    }
    
    li.dropdown>a {
      font-weight: bold !important;
    }
    
    .navbar-default .navbar-nav>li>a {
      font-weight: bold !important;
      padding: 10px 20px 10px 15px;
    }
    
    li.dropdown>a:before {
      content: "\f107";
      font-family: FontAwesome;
      position: absolute;
      right: 6px;
      top: 9px;
      font-size: 15px;
    }
    
    @media (min-width: 767px) {
      li.dropdown-submenu>a {
        padding: 10px 20px 10px 15px;
      }
      li.dropdown>a:before {
        content: "\f107";
        font-family: FontAwesome;
        position: absolute;
        right: 3px;
        top: 12px;
        font-size: 15px;
      }
    }
    
    
    
      
        Bootstrap Example
        
        
        
        
        
        
    
      
    
      
        
        
        

    Resize the window to see the result

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet, condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet, condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet, condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet, condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus non bibendum sem, et sodales massa. Proin quis velit vel nisl imperdiet rhoncus vitae id tortor. Praesent blandit tellus in enim sollicitudin rutrum. Integer ullamcorper, augue ut tristique ultrices, augue magna placerat ex, ac varius mauris ante sed dui. Fusce ullamcorper vulputate magna, a malesuada nunc pellentesque sit amet. Donec posuere placerat erat, sed ornare enim aliquam vitae. Nullam pellentesque auctor augue, vel commodo dolor porta ac. Sed libero eros, fringilla ac lorem in, blandit scelerisque lorem. Suspendisse iaculis justo velit, sit amet fringilla velit ornare a. Sed consectetur quam eget ipsum luctus bibendum. Ut nisi lectus, viverra vitae ipsum sit amet, condimentum condimentum neque. In maximus suscipit eros ut eleifend. Donec venenatis mauris nulla, ac bibendum metus bibendum vel.

提交回复
热议问题