javascript - 修复了滚动上的标题位置 - 如果其他不起作用

标签 javascript jquery css position fixed

这是笔...

http://codepen.io/jareko999/pen/bZXbWP

jQuery 的“if”部分起作用,并在等于或低于 0 时将 .fixed 类添加到#header,但当 headerTop 高于 0(即“else”)时,它不会将其删除。我不明白这是怎么回事。 JS 新手,我想了解如何让它工作。谢谢。

HTML

<div class="content">
  <div id="header"></div>
</div>

CSS

body {
    overflow-x: hidden;
    margin: 0;
}

#header {
    width: 100%;
    height: 80px;
    background: blue;
    z-index: 1;
}

.content {
    position: absolute;
    top: calc(100% - 80px);
    width: 100%;
    height: 200vh;
    background: linear-gradient(to bottom, red, yellow);
}

.fixed {
    position: fixed;
    top: 0;
    width: 100%;
    background: blue;
}

jQuery

$(window).scroll(function() {
    var top = $('#header').offset().top;
    var headerTop = (top - $(window).scrollTop());

    if (headerTop <= 0) {
        $('#header').addClass('fixed');
    } else {
        $('#header').removeClass('fixed');
    }

});

最佳答案

我需要获取父 div offset().top 而不是实际的 header 本身。这是基于父元素顶部位置的粘性标题的最终滚动函数。

http://codepen.io/jareko999/pen/bZXbWP

$(window).scroll(function() {
    var top = $('.content').offset().top;
    var headerTop = (top - $(window).scrollTop());

    $('#header').toggleClass('fixed', headerTop <= 0);
    console.log(headerTop);
});

关于javascript - 修复了滚动上的标题位置 - 如果其他不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39210075/

相关文章:

jQuery 不淡入淡出文本?

javascript - 将方框移动为诊断、反转等

jquery - 滚动后菜单栏固定底部屏幕 ~20px

javascript - 使用 CSS 或 Java 显示或隐藏空白内容区域

android - 如何使用 Calabash 使用 TextContent 在 Android 中查找 WebView 元素

javascript - AngularJS - UI 没有很好地更新

与 Wiki 资源一起使用的 JavaScript edit-inplace-holders

javascript - 从 ASCII 中剥离 ajax 响应?迹象

javascript - D3 折线图不显示任何内容

javascript - 自动调整文本区域大小链接到jquery