gpt4 book ai didi

javascript - 固定标题 Div 的 CSS 问题

转载 作者:行者123 更新时间:2023-11-28 18:47:12 25 4
gpt4 key购买 nike

我的页面上有一个标题 div,当页面向下滚动到标题区域时,它被固定在顶部(通过 position:'fixed', and top:0),但问题是内容位置属性更改后,位于其下方的 div 最终会向上移动,从而填充标题 div 过去占用的空间。有谁知道如何修复它,以便在将位置更改为固定后标题下方的内容不会向上滑动?

提前致谢!!下面是我正在使用的代码,它使用 JQuery 固定标题:

    <html>    <head>    <script type="text/javascript" src="jquery-1.4.2.min.js"></script>    <style type="text/css">        .para {           background-color:yellow;        }        .pinned {            background-color:#0000FF;        }        #pinHeader.fixed {          position: fixed;          top: 0;          width:100%;        }    </style>    </head>    <body>    <div>                         <div>                              <h1>Nav goes here</h1>                         </div>                            <div>                                        <div id="pinHeader" class="pinned">                                                <h1> Main Header </h1>                                                <h2>Sub header goes here</h2>                                                <hr />                                        </div>                            </div>                                     <!-- main content goes here -->            <div id="mainContent">                                                  <h2>Content 1</h2>                                                  <p class="para">blah blah blah blah blah blah blah blah blah blah blah blah blah blah<br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                  </p>                                                   <h2>Content 2</h2>                                                  <p class="para">blah blah blah blah blah blah blah blah blah blah blah blah blah blah<br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                  </p>                                                   <h2>Content 3</h2>                                                  <p class="para">blah blah blah blah blah blah blah blah blah blah blah blah blah blah<br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                  </p>                                                   <h2>Content 4</h2>                                                  <p class="para">blah blah blah blah blah blah blah blah blah blah blah blah blah blah<br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                     blah blah blah blah blah blah blah blah blah blah blah blah blah blah <br />                                                  </p>                                               </div>    </div>    <script type="text/javascript">    var divTop = null;    jQuery(document).ready(function(){        jQuery(window).scroll(function() {            pinnedPanel();        });        jQuery(window).resize(function() {            pinnedPanel();        });        divTop = jQuery('#pinHeader').offset().top;    });    var pinned = false;    function pinnedPanel() {    var stickHeader = jQuery('#pinHeader');    var contentDiv = jQuery('#mainContent');      // what the y position of the scroll is      var y = jQuery(window).scrollTop();      if (y >= divTop) {            stickHeader.addClass('fixed');            pinned = true;      } else if (pinned) {            stickHeader.removeClass('fixed');            pinned = false;      }    }    </script>    </body>    </html>

最佳答案

将 stickHeader 的高度添加到 contentDiv 的边距顶部,并在取消固定时将其恢复到之前的状态(此处假设为零)。

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;

}

关于javascript - 固定标题 Div 的 CSS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10274020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com