1

ページにヘッダー div があり、ページがヘッダー領域までスクロールされると、上部に固定されます (position:'fixed' および top:0 を介して)。その下では、位置属性が変更された後に上に移動し、ヘッダー div が占めていたスペースを埋めます。位置が固定に変更されると、ヘッダーの下のコンテンツが上にスライドしないように修正する方法を知っている人はいますか?

前もって感謝します!!以下は私が使用しているコードで、JQuery を使用してヘッダーをピン留めします。

    <html>

    <頭>

    <script type="text/javascript" src="jquery-1.4.2.min.js"></script>

    <style type="text/css">

        .para {

           背景色:黄色;

        }

        .ピン留め {
            背景色:#0000FF;
        }

        #pinHeader.fixed {
          位置: 固定;
          上: 0;
          幅:100%;
        }

    </style>

    </head>


    <本体>

    <div>

                         <div>
                              <h1>ナビはこちら</h1>

                         </div>


                            <div>

                                        <div id="pinHeader" クラス="固定">

                                                <h1> メイン ヘッダー </h1>
                                                <h2>ここにサブヘッダーが入ります</h2>
                                                <hr />

                                        </div>

                            </div>


                                    <!-- ここに主な内容が入ります -->

            <div id="mainContent">

                                                  <h2>コンテンツ 1</h2>
                                                  <p class="para">何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                  </p>

                                                  <h2>コンテンツ 2</h2>
                                                  <p class="para">何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                  </p>

                                                  <h2>コンテンツ 3</h2>
                                                  <p class="para">何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                  </p>

                                                  <h2>コンテンツ 4</h2>
                                                  <p class="para">何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                     何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか何とか<br />
                                                  </p>                                   

            </div>


    </div>



    <script type="text/javascript">
    var divTop = null;
    jQuery(ドキュメント).ready(関数(){

        jQuery(window).scroll(関数() {
            pinnedPanel();

        });

        jQuery(window).resize(関数() {

            pinnedPanel();

        });

        divTop = jQuery('#pinHeader').offset().top;
    });

    var pinned = false;

    関数 pinnedPanel() {

    var stickHeader = jQuery('#pinHeader');

    var contentDiv = jQuery('#mainContent');

      // スクロールの y 位置は何か
      var y = jQuery(window).scrollTop();

      if (y >= divTop) {
            stickHeader.addClass('fixed');
            ピン留め = true;

      } その他の場合 (固定) {
            stickHeader.removeClass('fixed');
            ピン留め = false;

      }

    }

    </script>

    </body>

    </html>

4

3 に答える 3

1

contentDiv の margin-top に stickHeader の高さを追加し、固定解除時に以前の状態 (ここではゼロと仮定) に戻します。

if (y >= divTop) {
    stickHeader.addClass('fixed');
    contentDiv.css('margin-top', stickHeader.height())
    pinned = true;

} else if (pinned) {
    stickHeader.removeClass('fixed');
    contentDiv.css('margin-top', 0)
    pinned = false;

}
于 2012-04-23T02:18:13.917 に答える
0

ヘッダー div に margin-top を使用してみてください...試してみてください..

于 2012-04-23T06:19:43.163 に答える
0

ナビゲーションバーを上または下に固定すると、他の方法では回避するレイヤリングが発生します。SO:バーが占めるスペースの量、具体的には高さを把握する場合..そして、マージントップからその差を加算または減算します。

コンテンツがヘッダーの上部に向かって隆起しないようにする場合:

margin-top: -some px;

コンテンツをページの下に移動する場合:

margin-top: some px;
于 2015-07-16T05:09:37.430 に答える