javascript - 滚动时锁定窗口顶部的对象

标签 javascript jquery css html

<分区>

我在页面顶部有一个对象,当用户滚动到某个点时,我想将其锁定到窗口顶部。到目前为止我有这个工作正常但它有点神经质。 我所说的 jumpy 是指它不会移动,直到用户滚动到那么远然后它跳到我想要锁定对象的点。 当我滚动时,每次移动滚动条时,div 都会上下跳动。

这是我目前所拥有的:

$(window).scroll(function () {
    if ($(window).scrollTop() > 165) {
        $('#nav_bar').css('top', parseInt($(window).scrollTop() - 165));
    }else{
        $('#nav_bar').css('top', parseInt($(window).scrollTop()));
    }
}
);



.nav{
    position:relative;
    height:25px;
    width:750px;
    margin-top:165px;
    margin-left:auto;
    margin-right:auto;
    display:block;
    text-align:center;
}
.nav div{
    display:inline-block;
    height:25px;
}
.nav div div{
    float:left;
    height:25px;
    text-align:center;
    display:table-cell;
    vertical-align:bottom;
    width:auto;
    margin-left:10px;
    margin-right:10px;
    padding-left:5px;
    padding-right:5px;
    line-height:25px;
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    color:rgba(11,108,138,1.00);
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

这是我第一次这样做,所以我确定每次滚动页面时我是否可以帮助跳转,但我在其他网站上看到它运行得非常顺利。 但是我知道 div(head)应该随着页面滚动直到到达那个点,然后完全停在页面顶部。

最佳答案

Headroom.js

这个插件可以处理这些情况并且可以正常工作。我建议你试试看。它是开源的,因此如果您在实现过程中发现任何问题,也可以参与其中。

如果您不想使用 headroom.js,我会创建另一个与您正在修复的 div 高度相同的 div,但我会添加“display: none”作为 CSS 规则。然后,在您的 JS 逻辑中,您可以在修复导航时显示它,并在取消导航时再次隐藏它。

或者您可以只向父元素添加一个等于固定导航高度的内边距。

        if (viewport.scrollTop() > 148) {
            header.css('position', 'fixed').addClass('compressed');
            section.css('padding-top', 148);
        } else {
            header.css('position', 'relative').removeClass('compressed');
            section.css('padding-top', 0);
        }

其中“header”、“section”和“viewport”是应该用 $('') 定义的变量。

如果您还需要什么,请告诉我。

关于javascript - 滚动时锁定窗口顶部的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24062358/

上一篇:html - 保持页眉和页脚就位 - 仅滚动正文

下一篇:css - 使用媒体查询隐藏响应表中的列

相关文章:

javascript - 如何获取第一个数组中第一个对象的第一个值

javascript - 滚动条显示时如何设置 "fix"容器元素高度?

javascript - 当用户在 div 背景图像上滚动时删除覆盖 div

javascript - 仅通过 svg 蒙版中的孔单击

javascript - 带有静态查询字符串的动态 URL

jquery - 将书签链接添加到 Facebook IFRAME 应用程序

javascript - 如何消除渲染后 "flicker"?

css - 如何使用 React 风格的组件制作从上到下的动画

javascript - 将 Symbol 属性添加到数组

javascript - 如何反转 JavaScript 变量中 HTML DOM 元素的顺序?