【问题标题】:bootstrap navbar collapses on the first click or touch on a mobile screen引导导航栏在第一次单击或触摸移动屏幕时折叠
【发布时间】:2015-07-28 13:58:43
【问题描述】:

我有一个使用 css bootstrap navbar 的响应式网站。

问题是,在手机上,任何点击/点击/触摸屏幕上的任何位置都会导致导航栏崩溃。在第二次点击/单击/触摸时,导航栏返回。在桌面屏幕上的行为是相似的,但它只会导致屏幕轻弹或刷新,这仍然不是预期的。

预期的行为是,导航栏应该只在点击/单击/触摸右上角的导航栏图标时折叠。

对解决这个问题有什么帮助吗?

好的,这是代码...

<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#XX-header-1">
    <span class="sr-only">Toggle navigation</span>    
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span> 
    <span class="icon-bar"></span> 
  </button>
  <a class="navbar-brand visible-xs" href="/home"><img src="XXXX" class="img-responsive" /></a>
  <a class="navbar-brand hidden-xs" href="/home">Home</a>
</div>

<div class="collapse navbar-collapse" id="cb-header-1">

  <ul class="nav navbar-nav">

    <li <?php XXX ?> ><a href="/XXX">XXX</a></li>
    <li <?php YYY ?> ><a href="/YYY">YYY</a></li> 

  <?php if (a==b) { ?>

    <li class="active" >
    <a href="<?php AAA ?>"><span class="glyphicon glyphicon-cog"></span>
    <?php
    SOME CODE HERE
    ?>
    </a>
    </li>
    <li class="active" >
    <a href="/MMM"><span class="glyphicon glyphicon-off"></span> MMM</a></li>

  <?php } else { ?>

    <li <?php NNN ?> ><a href="/NNN"><span class="glyphicon glyphicon-user"></span> NNN</a></li>
    <li <?php OOO ?> ><a href="/OOO"><span class="glyphicon glyphicon-log-in"></span> OOO</a></li>

  <?php } ?>

  </ul>
 </div>
</div>
</nav>

这是导航栏自定义的 CSS

.navbar-default {
    background-color: #FFFFFF;
    border-color: #COLOR1;
}
.navbar-default .navbar-brand {
    color: #COLOR2;
}
.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
    color: #COLOR3;
}
.navbar-default .navbar-text {
    color: #COLOR2;
}
.navbar-default .navbar-nav > li > a {
    color: #COLOR2;
}
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
    color: #COLOR3;
}
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
    color: #COLOR3;
    background-color: #COLOR1;
}
.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {
    color: #COLOR3;
    background-color: #COLOR1;
}
.navbar-default .navbar-toggle {
    border-color: #COLOR1;
}
.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
    background-color: #COLOR1;
}
.navbar-default .navbar-toggle .icon-bar {
    background-color: #COLOR2;
}
.navbar-default .navbar-collapse, .navbar-default .navbar-form {
    border-color: #COLOR2;
}
.navbar-default .navbar-link {
    color: #COLOR2;
}
.navbar-default .navbar-link:hover {
    color: #COLOR3;
}
@media (max-width: 767px) {
    .navbar-default .navbar-nav .open .dropdown-menu > li > a {
        color: #COLOR2;
    }
    .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
        color: #COLOR3;
    }
    .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
        color: #COLOR3;
        background-color: #COLOR1;
    }
}

【问题讨论】:

    标签: css twitter-bootstrap navbar


    【解决方案1】:

    这听起来像是其中一个元素(可能是切换按钮)没有被关闭,或者包裹的元素超出了应有的数量。你能提供有问题的HTML吗?或者也许是一个 jsFiddle?如果没有更多信息,将很难诊断出问题。

    EDIT:fiddle

    【讨论】:

    • 感谢您的回复。我已经编辑了问题并添加了 html 代码。
    • 嗯,我看不出 HTML 有任何明显的问题。如果放入小提琴中,一切正常(假设#XX-header-1 是#cb-header-1)并且没有显示任何异常行为。看起来奇怪的行为可能来自其他地方,值得仔细查看您的脚本以确保没有其他可能触发引导程序崩溃。
    • 再次感谢,现在我已经编辑了问题并添加了导航栏自定义 CSS 代码,如果有帮助的话。
    • 现在,有 java 脚本,但没有与 navbar 交互。有用于分页的 jquery,标准下载中使用的日历,还有用于屏幕级别验证的自定义 js。
    • @ench,为什么不把你的小提琴发布给我们其他人使用?
    【解决方案2】:

    js 文件中的以下代码导致此问题,取出代码,它开始按预期的方式工作,谢谢大家的帮助

    $(document).on('click',function(){ $('.collapse').collapse('hide'); })

    【讨论】:

    • 这段代码在哪里。你有自定义 js 或者这段代码来自 bootstrap.js 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 2019-12-16
    • 2020-12-01
    相关资源
    最近更新 更多