首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >固定位置扩展粘性侧边栏:按下内容,怎么做?

固定位置扩展粘性侧边栏:按下内容,怎么做?
EN

Stack Overflow用户
提问于 2015-08-19 13:22:38
回答 1查看 1.4K关注 0票数 0

我有一个侧边栏,当它点击标题时我想要粘粘-所以我写了一个脚本,当滚动到正确的位置时给它一个固定的类,然后给它一个固定的位置。Sp到目前为止还不错--但是侧边栏有一个展开列,并且这个扩展被修正了,侧边栏在页面上下移动。

我怎样才能让它粘在一起,却仍然把内容推下去?

EN

回答 1

Stack Overflow用户

发布于 2015-08-19 14:38:51

您不能使用纯css进行此操作,因为:

一个具有位置的元素: fixed;相对于viewport定位,这意味着即使页面被滚动,它也始终停留在相同的位置。上、右、下和左属性用于定位元素。 固定元素不会在其通常所在的页面上留下空白。

因此,它超出了文档的flow ,但是,您可以使用js来实现如下所需的内容:

代码语言:javascript
复制
$(document).ready(function () {
    $('#expander').click(function () {
        $('.content').toggleClass('nav-expanded');
    })
});
代码语言:javascript
复制
.navbar {
    position: fixed !important;
    width: 100%;
}
p {
    text-align: center;
}
.header{
    padding: 10px;
}
.content {
    padding-top: 60px;
    transition: .35s;
}
.nav-expanded {
    padding-top: 165px;  /*you can change the value to more accuracy */
}

.navbar-ex1-collapse{
    width: 100%;
}

.list-group .list-group-item{
    background: #f8f8f8 !important;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<nav class="navbar navbar-default" role="navigation">
    <div class="header"> 
        <a href="#">Logotipo</a>

        <button id="expander" type="button" class="btn btn-success" data-toggle="collapse" data-target=".navbar-ex1-collapse">Click me</button>
    </div>
    <div class="collapse navbar-ex1-collapse">
        <ul class="list-group">
            <li class="list-group-item"><a href="#">Enlace #1</a>

                <li class="list-group-item"><a href="#">Enlace #2</a>

        </ul>
    </div>
</nav>
<div class="content">
    <p>1</p>
    <p>2</p>
    <p>3</p>
    <p>4</p>
    <p>5</p>
    <p>6</p>
    <p>7</p>
    <p>8</p>
    <p>9</p>
    <p>q</p>
    <p>w</p>
    <p>e</p>
    <p>r</p>
    <p>t</p>
    <p>y</p>
    <p>u</p>
    <p>i</p>
    <p>o</p>
    <p>p</p>
    <p>a</p>
    <p>s</p>
    <p>d</p>
    <p>f</p>
    <p>g</p>
    <p>h</p>
    <p>j</p>
    <p>k</p>
    <p>l</p>
    <p>z</p>
    <p>x</p>
</div>

这样做的想法是,当您在click按钮上展开标题(或任何用于该标题的东西)时,在content上设置padding-top等于您的头部展开的height。您甚至可以使用navbar计算js中的.outerheight()的高度,并将该高度设置为padding-top of .content,以提高其准确性,在代码段中使用重要信息只是因为引导程序的样式覆盖了挖掘,但通常不需要这样做。

我希望你知道这个主意,这样你就可以利用它了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32096772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档