【问题标题】:Different navbar styles in mobile sizes & desktop移动尺寸和桌面的不同导航栏样式
【发布时间】:2017-01-17 21:32:40
【问题描述】:

我正在尝试为我自己的网站实现类似类型的导航样式,我在名为 Enliven 的 WordPress 模板上看到了这种样式(参见此处 - http://themezhut.com/demo/enliven/)。该模板似乎有 2 个不同的导航...在移动设备中,它不固定在顶部并在单击时展开......当 992 像素或更宽时,导航在顶部展开并在您滚动时固定。

谁能帮我实现这样的导航?可能指出我正确的方向?我正在尝试更加熟悉 Bootstrap 3,但主要学习的是 Bootstrap 4 的课程。

谢谢! :)

【问题讨论】:

  • "主要在 Bootstrap 4 上学习过课程"?这很不寻常,因为它仍处于 alpha 阶段

标签: html css twitter-bootstrap twitter-bootstrap-3 nav


【解决方案1】:

$(document).ready(function() {
  if (document.documentElement.clientWidth > 480) {
    $("#menu").addClass("navbar-fixed-top");
  } else {
    $("#menu").removeClass("navbar-fixed-top");
  }
});
<!DOCTYPE html>
<html lang="en">

<head>
  <title>Bootstrap Case</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>

<body>

  <nav id="menu" class="navbar navbar-inverse ">
    <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span> 
        </button>
      </div>
      <div class="collapse navbar-collapse" id="myNavbar">
        <ul class="nav navbar-nav">
          <li class="active"><a href="#">Home</a>
          </li>
          <li class="dropdown">
            <a class="dropdown-toggle" data-toggle="dropdown" href="#">Page 1 <span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="#">Page 1-1</a>
              </li>
              <li><a href="#">Page 1-2</a>
              </li>
              <li><a href="#">Page 1-3</a>
              </li>
            </ul>
          </li>
          <li><a href="#">Page 2</a>
          </li>
          <li><a href="#">Page 3</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
  <p>abc</p>
</body>

</html>

【讨论】:

  • 在移动设备上,我正在寻找一个不固定在顶部的导航
  • 为你编辑了 Raylon。响应您想要的任何尺寸的移动设备。
【解决方案2】:

添加滚动事件侦听器可以正常工作。 因此,当您滚动时,您只需添加一个更改导航样式的功能。 例如,您可以更改背景颜色、颜色、高度……

【讨论】:

    【解决方案3】:

    工作引导链接:http://www.bootply.com/105915#

    你必须为按钮使用按钮类 toggle-collapse 用于在单击按钮时切换导航菜单 和媒体查询仅显示小屏幕按钮

    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-header">
        <a class="navbar-brand" href="#">Brand</a>
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
      </div>
      <div class="navbar-collapse collapse">
        <ul class="nav navbar-nav">
          <li class="active"><a href="#">Home</a></li>
          <li><a href="#about">About</a></li>
          <li><a href="#contact">Contact</a></li>
        </ul>
        <div class="navbar-header navbar-right">
            <p class="navbar-text">
            <a href="#" class="navbar-link">Username</a>
            </p>
        </div>
      </div>
    </nav>
    
    
    //css
    
    body {
        padding-top:70px;
    }
    
    @media (max-width: 990px) {
        .navbar-header {
            float: none;
        }
        .navbar-toggle {
            display: block;
        }
        .navbar-collapse {
            border-top: 1px solid transparent;
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
        }
        .navbar-collapse.collapse {
            display: none!important;
        }
        .navbar-nav {
            float: none!important;
            margin: 7.5px -15px;
        }
        .navbar-nav>li {
            float: none;
        }
        .navbar-nav>li>a {
            padding-top: 10px;
            padding-bottom: 10px;
        }
    }
    

    【讨论】:

    • Gotame 这不是我要找的.. 我不希望移动设备上的导航保持固定在顶部.. 我希望它滚动.. 我只希望导航保持固定在桌面屏幕的顶部。
    【解决方案4】:

    我回复了very similar question here

    使用 Bootstrap,这种类型的导航栏可以使用 ScrollSpy 组件来“观察”滚动位置并在滚动定位到特定点时更改样式。您最终会得到 2 种不同的 nabvar 样式。

       /* navbar style once attached to the page */ 
       .affix {
             background-color: black;   
        }
    
        @media (min-width:768px) {
            .affix-top {
              /* initial navbar style at top */
              background-color:transparent;
              border-color:transparent;
              padding: 15px; 
            }
        }
    

    演示:http://www.codeply.com/go/xp2fY6sVHP

    【讨论】:

      猜你喜欢
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 2018-05-09
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多