6

「navbar-fixed-top」クラスとともに「navbar」を使用すると、ページを下にスクロールしたときにナビゲーションバーがページの上部に表示されます。これはモバイル/iPadブラウザでは機能しないようです。なぜ、そしてどのようにそれらをモバイルブラウザにもフロートさせるのか。ipad(safari、chrome)Android(firefox)Windows Phone(IE)でこれを試しました。

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <script src="http://code.jquery.com/jquery.min.js"></script>

    <script type="text/javascript" src="http://twitter.github.com/bootstrap/assets/js/bootstrap.js"></script>
    <link href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" rel="stylesheet">
    <link href="http://twitter.github.com/bootstrap/assets/css/bootstrap-responsive.css" rel="stylesheet">

</head>

<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
  <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
       <span class="icon-bar"></span>
       <span class="icon-bar"></span>
       <span class="icon-bar"></span>
  </a>
  <span class="brand"><img title="Logo" alt="Logo" src="static/images/iu_logo.gif" /></span>
  <div class="nav-collapse">
  <ul class="nav">
    <li class="active">
        <a id="homeLink" href="#">Home</a>
    </li>
    <li class="dropdown">
      <a class="dropdown-toggle" id="newsLink" href="#">News</a>
      <ul class="dropdown-menu">
        <li><a href="#">Link 1</a></li>
        <li><a href="#">Link 2</a></li>
        <li class="divider"></li>
        <li><a href="#">Another link</a></li>
      </ul>
    </li>
  </ul>
  <ul class="nav pull-right">
    <li id="loginLink"><a href="#" id="loginButton">Login</a></li>
  </ul>
  </div>
</div>
</div>
50 lines of text (just to have the page scrollable)
</body>
</html>

モバイルデバイスのブートストラップ応答を有効にするために、headタグに以下の行があります。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

助言がありますか

4

2 に答える 2

12

同じ問題があり、他のフレームワークについて少し調べました。JQuery Mobileは固定ナビゲーションバーで正しく動作するため、問題はBootstrap側でのみ発生する必要があり、実際には意図的に無効にしています(詳細は以下を参照)。

基本的には、スタイルをインラインで追加して試すことができます。

<div class="navbar navbar-fixed-top navbar-inverse" style="position:fixed">

もちろん、それに応じてナビゲーションバーのスタイルを調整する必要があります。私は次のようにしました:

/* Override Bootstrap Responsive CSS fixed navbar */
@media (max-width: 979px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
      position: fixed;
      margin-left: 0px;
      margin-right: 0px;
  }
}

レスポンシブcssの後にこれを追加しました。

私はさまざまなデバイスで試しました...低価格のAndroidタブレット、私のハイエンドのAndroid携帯電話。iOSで試したことはありません。最も驚くべきことは、Android版Firefoxで完全にスムーズに動作することです。

これは、Bootstrapの作成者がJQMで採用された詳細なソリューションを参照して返信したgithubの問題の1つです:https ://github.com/twitter/bootstrap/issues/1617

于 2013-01-09T20:43:34.127 に答える
5

モバイルデバイスではうまく機能しないため、小さな画面で固定ナビゲーションバーを使用しない場合のブートストラップ。あなたはbootstrap-responsive.css見つけることができます:

@media (max-width: 979px) {
  ...
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    position: static;
  }
  ...
}

それを削除するかbootstrap-responsive.css、スタイルシートをロードせずに、モバイルデバイスで何が起こるかを確認すると、それが必要であることがわかります:)私の低コストのAndroidモバイルでは、スクロール中に固定要素が修正されません。表示されているすべての画面がトラバースされます。スクロールが終了すると、ブラウザは固定要素の位置を再計算し、ナビゲーションバーが正しい場所にジャンプします。

于 2013-01-08T11:19:28.957 に答える