javascript - 如何使用固定的 Navbar 滚动到正确的 div

标签 javascript jquery html css twitter-bootstrap

<分区>


关闭 7 年前

我有一个 Bootstrap 附加导航栏,但是当我尝试滚动到一个 div 时,导航栏覆盖了 div 文本,所以我无法阅读它。

enter image description here

最佳答案

实际上,我无法从提供的非常少的代码中了解您的场景。无论如何,我在这里提出了相关的演示。看看,看看对你有没有帮助。

在下文中,我们将向下滚动到具有类 scrollStopHeader Level 3 内容。

我的方法:

1) 使用 offset().top

从顶部查找 Header Level 3 的位置

2) 查找具有类 header<header>outerHeight()

3) 现在,Top Position - Header Height 通过移除标题的 height 帮助我们获得滚动的实际位置。

4) 最后动画滚动到那个位置。

Working : Demo

$(".scroll").click(function()
{
    var scrollPos = $(".scrollStop").offset();
    scrollPos = scrollPos.top;
    var headerHeight = $(".header").outerHeight();
    var actualPos = scrollPos - headerHeight;
    $("body,html").animate({'scrollTop': actualPos});
});
body
{
    margin:0px;
}
.header
{
    margin:0px;
    display:block;
    left:0px;
    top:0px;
    position:fixed;
    width:100%;
    height:50px;
    background:rgba(180,30,30,0.7);
}

.container
{
    margin:55px auto 0px auto;    
    background:#ccc;
    width:90%;
    padding:10px;
    border-radius:10px;
}

.title h1
{
    text-align:center;
}

.container > div
{
    display:block;
    width:90%;
    background:#2b2937;
    color:#eee;
    padding:10px;
    margin:10px auto;
    border-radius:10px;
}

.scroll
{
    position:fixed;
    color:#fff;
    text-align:center;
    background:#34D2E3;
    padding:10px;
    border-radius:5px;
    right:0px;
    cursor:pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="header">
</div>
<span class="scroll">Scroll Down<br> Click</span>
<div class="container">
    <div class="title">
        <h1>Dummy HTML Text</h1>
    </div>
    <div>
        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
    </div>
    <div>
        <h1>HTML Ipsum Presents</h1>

    <p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>

    <h2>Header Level 2</h2>

    <ol>
       <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
       <li>Aliquam tincidunt mauris eu risus.</li>
    </ol>

    <blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>

    <h3 class="scrollStop">Header Level 3</h3>

    <ul>
       <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
       <li>Aliquam tincidunt mauris eu risus.</li>
    </ul>

    <pre><code>
    #header h1 a { 
        display: block; 
        width: 300px; 
        height: 80px; 
    }
    </code></pre>
    
            <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>    
        
    
            <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>  
        
</div>
</div>

关于javascript - 如何使用固定的 Navbar 滚动到正确的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33375655/

上一篇:html - 向上移动按钮而不影响表格中上述 tr 元素的 css

下一篇:javascript - 选项卡内容不会在选项卡单击时显示

相关文章:

javascript - jquery.rotate 错误

javascript - 运行 npm run pactTest 时 PACT.io : Getting Missing requests error,

jquery - 将 TokenInput 和 razor 代码绑定(bind)到同一模型?

jquery - 如何刷新页面并保持元素不刷新(持久)直到用户单击提交?

javascript - jQuery gritter 插件关闭图标保持隐藏状态

html - CSS 下拉菜单在悬停时将滚动条添加到标题 div

javascript - 选择不适用于模态的选项

javascript - jQuery Mobile 页面功能

javascript - jQuery 记住多个焦点事件的原始文本框值

javascript - 仅从 firebase : Angularfire 检索父元素