【问题标题】:Javascript hide and show divJavascript隐藏和显示div
【发布时间】:2017-04-04 14:02:04
【问题描述】:

下面的代码是我的 CSS 文件。我在这里要做的是在我没有选择导航按钮<a href="#navbar-more-show"> 时隐藏<div class="container navbar-more visible-xs">。但是当我选择导航按钮时,会出现容器导航栏。这里的问题是我不确定如何默认隐藏 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>

滚动到底部以查看结果中的内容!

【问题讨论】:

    标签: javascript jquery css dom-events


    【解决方案1】:

    您可以使用以下这些方法

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

    【讨论】:

      【解决方案2】:

      从您的描述看来,您似乎需要添加代码来隐藏要开始的元素:

      $(document).ready(function() {
           $(".container.navbar-more.visible-xs").hide();
           // your other code...
      }
      

      【讨论】:

      • 我实际上试图默认隐藏#container navbar-more visible-xs。即使我没有点击#navbar-more-show,这仍然会显示导航栏
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多