Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to hide navbar when when overlay appears

Using code from W3schools 'Sidenav Overlay' I'm trying to create the same effect in Bootstrap. I have the .navbar-toggle floating left and the navbar-toggle still shows when the overlay moves right. Not sure how to hide the navbar-toggle when the overlay appears. First post, Thanks

CSS

 .navbar {
    webkit-box-shadow: 0px 2px 3px rgba(100, 100, 100, 0.49);
    moz-box-shadow:    0px 2px 3px rgba(100, 100, 100, 0.49);
    box-shadow:         0px 2px 3px rgba(100, 100, 100, 0.49);
    background-color: white;
    padding: 5px;
}

.navbar-brand {
    position: absolute;
    width: 100%;
    left: 0;
    top: 5px;
    text-align: center;
    margin: auto;
}
.navbar-toggle {
    z-index:3;
    border: none;
    cursor: pointer;
    float: left;
}

.navbar-toggle a:hover {
    border: none;
    background-color: none;
    cursor: pointer;
}

/* The side navigation menu */
.sidenav {
    height: 100%; /* 100% Full-height */
    width: 0; /* 0 width - change this with JavaScript */
    position: fixed; /* Stay in place */
    z-index: 1; /* Stay on top */
    top: 0;
    left: 0;
    background-color: #111; /* Black*/
    overflow-x: hidden; /* Disable horizontal scroll */
    padding-top: 60px; /* Place content 60px from the top */
    transition: 0.5s; /* 0.5 second transition effect to slide in the sidenav */
}

/* The navigation menu links */
.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    color: #818181;
    display: block;
    transition: 0.3s
}

/* When you mouse over the navigation links, change their color */
.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}

/* Position and style the close button (top right corner) */
.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

/* Style page content - use this if you want to push the page content to the right when you open the side navigation */
#main {
    transition: margin-left .5s;
    padding: 20px;
}

/* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */
@media screen and (max-height: 450px) {
    .sidenav {padding-top: 15px;}
    .sidenav a {font-size: 18px;}
}

HTML

<header>
    <div class="navbar navbar-default navbar-fixed-top" role="navigation" id="slide-nav">
  <div class="container">
   <div class="navbar-header">
    <a class="navbar-toggle" onclick="openNav()"> 
      <span class="sr-only" >Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
     </a>
    <a class="navbar-brand" href="#">Test Nav</a>
    <div id="mySidenav" class="sidenav">
      <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
      <a href="#">About</a>
      <a href="#">Services</a>
      <a href="#">Clients</a>
      <a href="#">Contact</a>
    </div>
   </div>
   </div>
   </div>
  </header>

Javascript

/* Set the width of the side navigation to 250px */
function openNav() {
    document.getElementById("mySidenav").style.width = "250px";
}

/* Set the width of the side navigation to 0 */
function closeNav() {
    document.getElementById("mySidenav").style.width = "0";
}
like image 941
Tripp Avatar asked Oct 12 '16 03:10

Tripp


People also ask

How do I hide the navigation bar?

Way 1: Touch “Settings” -> “Display” -> “Navigation bar” -> “Buttons” -> “Button layout”. Choose the pattern in “Hide navigation bar” -> When the app opens, the navigation bar will be automatically hidden and you can swipe up from the bottom corner of the screen to show it.

How do I hide the navigation bar in Android 12?

If you want to hide the navigation bar, just follow these steps: 1 Open your “Settings” and tap “Display”. 2 Scroll down to the “Navigation bar” option and tap on it. 3 Here you can choose between “Buttons” and “Swipe gestures”.

Do you put navbar in header or body?

The navbar is usually inserted as the first item within the <body> tag.


2 Answers

Add z-index as 99 instead of 1 to .sidenav class

.sidenav {
background-color: #111;
height: 100%;
left: 0;
overflow-x: hidden;
padding-top: 60px;
position: fixed;
top: 0;
transition: all 0.5s ease 0s;
width: 0;
z-index: 99;
}
like image 96
ilmk Avatar answered Oct 20 '22 11:10

ilmk


It will help you. Try this

$(".navbar-toggle").click(function(e) {
        e.preventDefault();
        $("#mySidenav").toggleClass("activeclass");
});
$(".closebtn").click(function(e) {
        e.preventDefault();
        $("#mySidenav").removeClass("activeclass");
});
.navbar {
    webkit-box-shadow: 0px 2px 3px rgba(100, 100, 100, 0.49);
    moz-box-shadow:    0px 2px 3px rgba(100, 100, 100, 0.49);
    box-shadow:         0px 2px 3px rgba(100, 100, 100, 0.49);
    background-color: white;
    padding: 5px;
}

.sidenav.activeclass{width:250px;}
.sidenav{width:0px;}
.navbar-brand {
    position: absolute;
    width: 100%;
    left: 0;
    top: 5px;
    text-align: center;
    margin: auto;
}
.navbar-toggle {
    z-index:3;
    border: none;
    cursor: pointer;
    float: left;
}

.navbar-toggle a:hover {
    border: none;
    background-color: none;
    cursor: pointer;
}

/* The side navigation menu */
.sidenav {
    height: 100%; /* 100% Full-height */
    width: 0; /* 0 width - change this with JavaScript */
    position: fixed; /* Stay in place */
    z-index: 1; /* Stay on top */
    top: 0;
    left: 0;
    background-color: #111; /* Black*/
    overflow-x: hidden; /* Disable horizontal scroll */
    padding-top: 60px; /* Place content 60px from the top */
    transition: 0.5s; /* 0.5 second transition effect to slide in the sidenav */
}

/* The navigation menu links */
.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    color: #818181;
    display: block;
    transition: 0.3s
}

/* When you mouse over the navigation links, change their color */
.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}

/* Position and style the close button (top right corner) */
.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}


/* Style page content - use this if you want to push the page content to the right when you open the side navigation */
#main {
    transition: margin-left .5s;
    padding: 20px;
}

/* On s
maller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */
@media screen and (max-height: 450px) {
    .sidenav {padding-top: 15px;}
    .sidenav a {font-size: 18px;}
}
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<header>
    <div class="navbar navbar-default navbar-fixed-top" role="navigation" id="slide-nav">
  <div class="container">
   <div class="navbar-header">
    <a class="navbar-toggle"> 
      <span class="sr-only" >Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
     </a>
    <a class="navbar-brand" href="#">Test Nav</a>
    <div id="mySidenav" class="sidenav">
      <a href="javascript:void(0)" class="closebtn">&times;</a>
      <a href="#">About</a>
      <a href="#">Services</a>
      <a href="#">Clients</a>
      <a href="#">Contact</a>
    </div>
   </div>
   </div>
   </div>
  </header>
like image 39
Dhaarani Avatar answered Oct 20 '22 11:10

Dhaarani