Javascript 隐藏和显示 div

标签 javascript jquery css dom-events

下面的代码是我的 CSS 文件。我在这里要做的是隐藏 <div class="container navbar-more visible-xs">当我没有选择导航按钮时 <a href="#navbar-more-show"> .但是当我选择导航按钮时,容器导航栏就会出现。这里的问题是我不确定默认情况下如何隐藏 div 类,它一直出现在我的页面上,我希望它在我单击导航按钮时出现。

    $(document).ready(function() {
      $('a[href="#navbar-more-show"], .navbar-more-overlay').on('click', function(event) {
        event.preventDefault();
        $('body').toggleClass('navbar-more-show');

        if ($('body').hasClass('navbar-more-show')) {

          $('a[href="#navbar-more-show"]').closest('li').addClass('active');
        } else {
          $('a[href="#navbar-more-show"]').closest('li').removeClass('active');
        }
        return false;
      });
    });
 body.navbar-more-show {
  overflow: hidden;
}
.animate {
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.navbar {
  height: calc(100%);
  max-height: 300px;
  -webkit-transform: translate(0px, calc(-100% + 69px));
  transform: translate(0px, calc(-100% + 595px));
}
.navbar .container:not(.navbar-more) {
  padding: 0px;
}
.navbar-more-overlay {
  background-color: rgba(102, 102, 102, 0.55);
  display: none;
  height: 100%;
  left: 0px;
  position: fixed;
  top: 0px;
  width: 100%;
  z-index: 1029;
}
.navbar-more-show > .navbar-more-overlay {
  display: block;
}
.navbar-more-show > .navbar {
  -webkit-transform: translate(0px, 0px);
  transform: translate(0px, 295px);
}
.navbar-nav.mobile-bar {
  list-style: none;
  -ms-box-orient: horizontal;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -moz-flex;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-around;
  justify-content: space-around;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
  -webkit-align-items: stretch;
  align-items: stretch;
  margin: 0px 0px;
}
.navbar-nav.mobile-bar > li {
  -webkit-flex-grow: 1;
  flex-grow: 1;
  text-align: center;
}
.navbar-nav.mobile-bar > li > a > span.menu-icon {
  display: block;
  font-size: 1.8em;
}
.navbar-more {
  background-color: rgb(255, 255, 255);
  height: calc(100% - 69px);
  overflow: auto;
}
.navbar-more .navbar-form {
  border-width: 0px;
}
.navbar-more .navbar-nav > li > a {
  color: rgb(64, 64, 64);
}
.navbar-more > .navbar-nav > li > a > span.menu-icon {
  margin-left: 10px;
  margin-right: 10px;
}
@media (min-width: 768px) {
  .navbar {
    height: auto;
    -webkit-transform: translate(0px, 0px);
    transform: translate(0px, 0px);
  }
  .navbar-nav.mobile-bar {
    display: block;
    max-height: 64px;
    margin: 0px -.;
  }
  .navbar-nav.mobile-bar > li > a > span.menu-icon {
    display: none;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="navbar-more-overlay"></div>
<nav class="navbar navbar-inverse navbar-fixed-top animate">
  <div class="container navbar-more visible-xs">
    <form class="navbar-form navbar-left" role="search">
      <div class="form-group">
        <div class="input-group">
          <input type="text" class="form-control" placeholder="Search for...">
          <span class="input-group-btn">
                                <button class="btn btn-default" type="submit">Submit</button>
                            </span>
        </div>
      </div>
    </form>
    <ul class="nav navbar-nav">
      <li>
        <a href="#">
          <span class="menu-icon fa fa-picture-o"></span>
          Photos
        </a>
      </li>
      <li>
        <a href="#">
          <span class="menu-icon fa fa-bell-o"></span>
          Reservations
        </a>
      </li>
    </ul>
  </div>
  <div class="container">
    <div class="navbar-header hidden-xs">
      <a class="navbar-brand" href="#">Brand</a>
    </div>

    <ul class="nav navbar-nav navbar-right mobile-bar">
      <li>
        <a href="#">
          <span class="menu-icon fa fa-home"></span>
          Home
        </a>
      </li>
      <li>
        <a href="#">
          <span class="menu-icon fa fa-info"></span>
          <span class="hidden-xs">About the Boat</span>
          <span class="visible-xs">About</span>
        </a>
      </li>

      </li>

      <li>
        <a href="#">
          <span class="menu-icon fa fa-phone"></span>   
          <span class="hidden-xs">Contact Us</span>
          <span class="visible-xs">Contact</span>
        </a>
      </li>
      <li class="visible-xs">
        <a href="#navbar-more-show">
          <span class="menu-icon fa fa-bars"></span>
          More
        </a>
      </li>
    </ul>
  </div>
</nav>

Scroll to bottom to see contents in Result!

最佳答案

您可以使用以下这些方法

$('#YOURDIV').show() // Show your div like display:block;
$('#YOURDIV').hide() // Hide your div like display:none;

关于Javascript 隐藏和显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40715709/

相关文章:

javascript - 为什么有两种 JavaScript 字符串?

javascript - 关于第一个 :child and last:child in CSS 的问题

jquery - z-index 无法与第 n 个子项正常工作

像素位置的 CSS 渐变(不是 %)

html - 在 MS edge 上滚动中断转换 css

javascript - 在javascript中删除一个字符串,不留空白?

javascript - 如何从 Nodejs 应用程序以 cronjob 的形式发送 ejs 文件作为 HTML 电子邮件

javascript - 如果输入框内容发生更改并且未按下按钮,如何显示警报消息?

javascript - 如何对动态添加数据属性的div进行排序,而不重新组织具有相同数据属性的现有div

JavaScript 和 CSS 样式在我的 "Google Sites"页面上不起作用?