【问题标题】:Bootstrap: hide links on navbar collapseBootstrap:在导航栏折叠时隐藏链接
【发布时间】:2014-08-11 04:18:30
【问题描述】:

我想让导航栏中的链接在导航栏折叠时消失。

我的导航栏中有两个链接列表:

    <div class="collapse navbar-collapse navbar-left">
      <ul class ="nav navbar-nav">
        <li><%= link_to 'Home', '#home' %> </li>
        <li><a href="#food">Food</a></li>
        <li><a href="#drinks">Drinks</a></li>
        <li><a href="#enter">Entertainment</a></li>
      </ul>
    </div>
    <div class="collapse navbar-collapse navbar-right">
      <ul class="nav navbar-nav">
        ...
      </ul>
    </div>

正如预期的那样,当我的导航栏折叠时,我将它们折叠成两个部分,如下所示:

(我自己在折叠的导航栏上添加了一个“额外的”主页链接,在其他代码中。)

不过,我想要的是:

我希望顶部链接(家庭、食物、饮料、娱乐)在导航栏崩溃时消失。如果我从它们中删除“navbar-collapse”类,它们只会(相当丑陋)留在导航栏中。我正在考虑使用 jQuery 删除它们(在 .navbar-collapse 节目中),但这似乎有点过头了。如果导航栏再次展开也会有问题,因为那时我会从导航栏中删除链接!有什么想法吗?

提前致谢!

编辑:这是JSFiddle,我现在拥有的。这是一个editted JSFiddle,我在做我想做的事,但使用 jQuery。

【问题讨论】:

  • 我不确定我是否完全了解您的需求。您应该尝试在 JSFiddle 上创建一个您想要实现的目标的示例,或者至少尝试自己做,并向我们展示您的想法。
  • 感谢您的帮助!我添加了一个额外的屏幕截图来解释我正在尝试做什么。现在,我将继续制作一个 JSFiddle。谢谢!
  • 我们需要看看你用 jQuery 或 javascript 尝试了什么,你能添加你尝试的代码吗!
  • 最后添加了一个 JSFiddle。谢谢!
  • 在您的导航栏上添加hidden-xs,您不想在小型设备上出现。查看响应式实用程序。

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:

有一个响应式实用程序类hidden-xs.

http://getbootstrap.com/css/#responsive-utilities

演示:http://jsfiddle.net/jnxqpwjc/2/

    <div class="hidden-xs collapse navbar-collapse navbar-left">
      <ul class="nav navbar-nav" id="removeOnCollapse">
        <li><a href="#home">Home</a></li>
        <li><a href="#food">Food</a></li>
        <li><a href="#drinks">Drinks</a></li>
        <li><a href="#enter">Entertainment</a></li>
      </ul>
    </div>

【讨论】:

    【解决方案2】:

    如果您只需要顶部链接在导航栏折叠时消失并在导航栏完全显示时再次显示它们,您可以尝试以下操作:

    $('.navbar-left').on('show.bs.collapse', function() { $('.navbar-left').hide(); });
    $('.navbar-left').on('hidden.bs.collapse', function() { $('.navbar-left').show(); });
    

    如果您想删除它们并且不再显示它们,您应该尝试:

    $('.navbar-left').on('show.bs.collapse', function() { $('.navbar-left').remove(); });
    

    当然,前提是你只有一个使用 '.navbar-left' 的元素。

    【讨论】:

    • Bootstrap 内置了这个。不需要 jQuery
    • 谢谢!这也有效,但内置的“hidden-xs”更干净。不过谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 2020-09-02
    • 2016-05-06
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多