jquery - 无法指定 css position=fixed

标签 jquery css twitter-bootstrap-3

我有 3 个垂直 div,即右侧边栏、内容、左侧边栏。 当用户滚动页面时,我想将右侧边栏固定在顶部。 Like this image

figure 1

但目前,当我向下滚动页面时,第二个侧边栏会与第一个侧边栏重叠,如 this image. 所示。 是什么原因?任何人都请帮助我。 -谢谢

figure 2


 <script type="text/javascript">
        function fixDiv() {
    var $div = $("#navwrap");
    if ($(window).scrollTop() > $div.data("top")) { 
        $('#navwrap').css({'position': 'fixed','z-index': '1', 'top': '0'}); 
    }
    else {
        $('#navwrap').css({'position': 'static', 'top': 'auto'});
    }
} 
$(document).ready(function () {
       $("#navwrap").data("top", $("#navwrap").offset().top); // set original position on load
$(window).scroll(fixDiv);
});
     </script>

HTML代码

<div class="container">
    <div class="row clearfix">
        <div class="col-md-3 column" id="navwrap">
            <div class="btn-group">
                 <button class="btn btn-default" type="button"><em class="glyphicon glyphicon-align-left"></em></button> <button class="btn btn-default" type="button"><em class="glyphicon glyphicon-align-center"></em></button> <button class="btn btn-default" type="button"><em class="glyphicon glyphicon-align-right"></em></button> <button class="btn btn-default" type="button"><em class="glyphicon glyphicon-align-justify"></em> Justify</button>
            </div>
            <div class="row clearfix">
                <div class="col-md-12 column">
                    <div class="btn-group">
                         <button class="btn btn-default">Action</button> <button data-toggle="dropdown" class="btn btn-default dropdown-toggle"><span class="caret"></span></button>
                        <ul class="dropdown-menu">
                            <li>
                                <a href="#">Action</a>
                            </li>
                            <li class="disabled">
                                <a href="#">Another action</a>
                            </li>
                            <li class="divider">
                            </li>
                            <li>
                                <a href="#">Something else here</a>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="list-group">
                 <a href="#" class="list-group-item active">Home</a>
                <div class="list-group-item">
                    List header
                </div>
                <div class="list-group-item">
                    <h4 class="list-group-item-heading">
                        List group item heading
                    </h4>
                    <p class="list-group-item-text">
                        ...
                    </p>
                </div>
                <div class="list-group-item">
                    <span class="badge">14</span>Help
                </div> <a class="list-group-item"><span class="badge">14</span>Help</a>
            </div>
        </div>
        <div class="col-md-9 column">
            <div class="row clearfix">
                <div class="col-md-9 column">
                    <p>
                        Lorem ipsum dolor sit amet, <strong>consectetur adipiscing elit</strong>. Aliquam eget sapien sapien. Curabitur in metus urna. In hac habitasse platea dictumst. Phasellus eu sem sapien, sed vestibulum velit. Nam purus nibh, lacinia non faucibus et, pharetra in dolor. Sed iaculis posuere diam ut cursus. <em>Morbi commodo sodales nisi id sodales. Proin consectetur, nisi id commodo imperdiet, metus nunc consequat lectus, id bibendum diam velit et dui.</em> Proin massa magna, vulputate nec bibendum nec, posuere nec lacus. <small>Aliquam mi erat, aliquam vel luctus eu, pharetra quis elit. Nulla euismod ultrices massa, et feugiat ipsum consequat eu.</small>
                    </p>
                </div>
                <div class="col-md-3 column">
                    <p>
                        Lorem ipsum dolor sit amet, <strong>consectetur adipiscing elit</strong>. Aliquam eget sapien sapien. Curabitur in metus urna. In hac habitasse platea dictumst. Phasellus eu sem sapien, sed vestibulum velit. Nam purus nibh, lacinia non faucibus et, osuere nec lacus. <small>Aliquam mi erat, aliquam vel luctus eu, pharetra quis elit. Nulla euismod ultrices massa, et feugiat ipsum consequat eu.</small>
                    </p>
                </div>
            </div>
        </div>
    </div>
</div>

最佳答案

当你固定侧边栏时,你将它从文档流中移除。

也就是说,内容 div 位于侧边栏旁边,当侧边栏被移除时,内容会自然地尽可能地向左移动。

如果您将侧边栏放在屏幕的右侧,内容将保持在相同的位置。

一种解决方案是在侧边栏固定时动态地(使用 jQuery)向内容 div 添加一个左边距。

关于jquery - 无法指定 css position=fixed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435681/

相关文章:

c# - 从后端加载日期数据设置引导日期选择器以正确的格式

jquery - 使用 QUnit、JQuery 和 iframe 进行 UI 测试 - 如何等待新页面加载?

javascript - 获取受 .slideToggle() 影响的显示状态元素?

css - 如何在响应表中将行划分为 <td>

twitter-bootstrap - 如何创建 14 列的 Bootstrap 网格系统?

html - 覆盖 Bootstrap 样式

javascript - 每页多个视口(viewport)检查

javascript - 是否可以在网页的全屏模式下以编程方式禁用 esc/F11 键?

css - excel文件中应该使用什么公式

html - 使用 High Charts 和 Bootstrap 3 的响应式折线图