2011-01-18 10 views
29

私はjQuery Mobileを使ってウェブサイトを作っています。jqueryモバイルヘッダーとフッターを固定する方法は?

jqueryモバイルヘッダーとフッターを固定する方法は?私はちょうど(iPhoneアプリケーションで起こるように)コンテンツだけをスクロールし、ヘッダーとフッターを上下に固定しておきます。

提案がありますか?

答えて

28

あなたのヘッダー/フッターのdivにこの属性を追加します。

 <div data-role="header" data-position="fixed"> 
      <h1>Header Page 1</h1> 
     </div> 

また、あなたはこれを見ている可能性があります: http://jquerymobile.com/test/docs/toolbars/footer-persist-a.html

+2

これはiPhoneやiPadでは機能しませんが、Androidのものでは機能します。 –

+1

おい、これは2010年初めからの投稿です(最終1.0リリースよりずっと前です).iDevicesのiOS 5では、CSSの位置が固定される可能性がありました(iOS 5以前はjqmobileによって位置が計算され、スクロール時) –

+1

BB10の 'data-position =" fixed "の結果は...混在しています。ビューポートタグを使用した後は、[ここ](http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/How-to-set-up-the-viewport-for-a-BlackBerry -WebWorks-application/ta-p/1943807) - 心に響くファンシーなJSではありませんが、まだ100%ではありません。そして、これは2013年です。 – demaniak

4

jquery mobileで修正した問題は、ヘッダーとフッターが消えてしまうことです。私はこれが将来的に修正されるだろうと思っていますが、Danによって提案されたiscrollに加えて、jquery mobile scrollviewとwink toolkitもあります。 http://jquerymobile.com/test/experiments/scrollview/

  • コード:https://github.com/jquery/jquery-mobile/tree/master/experiments/scrollview/
  • 2)ウィンクツールキット

    私は良いjQueryのモバイルscrollviewとの結果が、iscrollやウインク

    +0

    誰かがiOSデバイスでこれをテストしましたか?なぜなら、私にとってスクリーンはちょうど立ち往生していて、スワイプし続けると、最終的にはツールバーはまだフェードイン/アウトしていないからです...私は具体的にはJqueryモバイルについて話しています。 – CharlesS

    +0

    iOSでjquery mobile scrollviewを使用しました。それは正常に働いた。つまり、私は結局煎茶に切り替えました。 Jqueryモバイルのパフォーマンスは低すぎる(すべてのボタンをクリックすると遅延)、必須のコントロールが不足していました。多分それは今改善されました。間違いなくプログラムするのはもっと楽しいです。 – i8abug

    +2

    「クリック」ではなく「タップ」と「タッチスタート」イベントにバインドすると、遅延がなくなります。 – Crashalot

    0

    使用iScroll v4の。ヘッダーとフッターを固定し、コンテンツのみをスクロールします。 iScrollにはラッパーDIVと子要素が必要です。下の例では、content_itemsはスクロールする項目を持つ子divです。私はあなたがdata-role = "content"とiScroll用のラッパーDIVを1つのHTML要素で結合できないことに気付きました!

    <script type="text/javascript"> 
    var myScroll; 
    
    $(document).ready(function() { 
    
        myScroll = new iScroll('wrapper'); 
    
    }); 
    
    </script> 
    <div data-role="page"> 
        <div id="header" data-role="header" data-position="fixed"></div> 
        <div id="content" data-role="content" class="contentcontainer contentsearched"> 
         <div id="wrapper"> 
          <div id="content_items" class="content_items"></div> 
         </div> 
        </div> 
        <div id="footer" data-role="footer" data-position="fixed"> 
         <div data-role="navbar"></div> 
        </div> 
    </div> 
    
    0

    最新のjquery-mobileバージョン(1.1.0-rc)をお試しください。このバグが修正されました。

    はiOSの6、7と8を探しhere

    0

    を持って、このハックは、問題を解決し、正しくiPod、iPhoneとiPadで(またはパネルなし)固定ヘッダを置き換えるために再描画をトリガするようです。注:私はiOSデバイスをテストし、その場合にのみこのイベントを追加します*。

    if (iOS()) { 
        $(document).on('blur', 'input:not(:submit), select, textarea', function() { 
         var paddingBottom = parseFloat($(".ui-mobile-viewport, .ui-page-active").css("padding-bottom")); 
         $(".ui-mobile-viewport, .ui-page-active").css("padding-bottom", (paddingBottom + 1) + "px"); 
         window.setTimeout(function() { 
          $(".ui-mobile-viewport, .ui-page-active").css("padding-bottom", paddingBottom + "px"); 
         }, 0); 
        }); 
    } 
    

    * iOS用のテスト:

    var iOS() = function() { 
        var userAgent = window.navigator.userAgent.toLowerCase(); 
        return (/iphone|ipad|ipod/).test(userAgent); 
    } 
    
    1

    は、このツールバーの機能タイプを有効にするには、両方にデータフルスクリーン=「true」属性とデータ位置=「固定」属性を適用しますヘッダーとフッターのdiv要素。フレームワークは、コンテンツコンテナ(ui-content)の埋め込みも解除します。

    <div data-role="header" data-position="fixed" data-fullscreen="true"> 
         <h1>Header Page 1</h1> 
        </div> 
    
    関連する問題