jquery - 如何创建具有 "drawer-looking"行为的导航栏

标签 jquery html css navbar

我正在尝试创建受宜家启发的“抽屉式”导航栏:IKEA navbar .单击“房间”时,我不仅希望出现房间列表,而且还想向下滑动页面的其余内容。我使用了 JQuery animate() 但它不起作用。我当然知道我需要以某种方式同步列表切换和我的绿色 div(又名“页面内容”)行为,但首先我必须在单击“房间”时强制绿色 div 向下移动。如何做?

Link to my Pen on Codepen

$(document).ready(function() {
  $(".headers:first").on({
    click: function() {
      $(".rooms").slideToggle();
      /*  $("#restof").slideToggle();*/
      /* $("#restof").css("padding-top","300px").slideToggle();
       */
      $("#restof").animate({
        top: "100px"
      });
    },
  });
});
#restof {
  background-color: lightgreen;
  width: 300px;
  height: 100px;
}

.rooms {
  list-style: none;
  position: absolute;
  display: none;
}

.headers {
  list-style: none;
  display: inline-block;
  margin-right: 100px;
  position: relative;
}


/*
.movedown{
  margin-top:100px;
}
*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<nav>
  <ul>
    <li class="headers" id="rooms">Rooms</li>
    <ul class="rooms">
      <li>BEDROOM</li>
      <li>KITCHEN</li>
      <li>BATHROOM</li>
    </ul>
    <li class="headers" id="products">Products</li>
  </ul>
</nav>
<div id="restof" </div>

最佳答案

去掉子菜单的position:absolute,把子菜单放在html代码中的nav末尾

$(document).ready(function() {
  $(".headers:first").on({
    click: function() {
      $(".rooms").slideToggle();
      /*  $("#restof").slideToggle();*/
      /* $("#restof").css("padding-top","300px").slideToggle();
       */
      $("#restof").animate({
        top: "100px"
      });
    },
  });
});
#restof {
  background-color: lightgreen;
  width: 300px;
  height: 100px;
}

.rooms {
  list-style: none;
  display: none;
}

.headers {
  list-style: none;
  display: inline-block;
  margin-right: 100px;
  position: relative;
}


/*
.movedown{
  margin-top:100px;
}
*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<nav>
  <ul>
    <li class="headers" id="rooms">Rooms</li>
    <li class="headers" id="products">Products</li>
  </ul>
  <ul class="rooms">
      <li>BEDROOM</li>
      <li>KITCHEN</li>
      <li>BATHROOM</li>
    </ul>
</nav>
<div id="restof" </div>

关于jquery - 如何创建具有 "drawer-looking"行为的导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45548173/

相关文章:

javascript - 滚动功能不工作

html - 如何使用 CSS 正确使用带边框的无表格布局?

javascript 当 promise 加载所有视频时

javascript - 数字框中特殊字符和字母的限制

PHP & MySQL 查询依赖于复选框

Polymer Shadow DOM 中的 JavaScript 插件初始化

javascript - 如何将 onClick 属性添加到自动生成的链接中?

php - 我可以在 <td> 中使用 <br> 或类似的内容来避免 RowSpan 吗?

javascript - 如何用html/css制作智能磁贴?

javascript - Google Closure 库的基准测试