javascript - 根据滚动位置更改 css 类

标签 javascript css scroll

我有以下 HTML

<header class="fixed">...</header>
<div id="content">
    <div id="sidemenu" class="fixed">...</div>
    <div id="scroll">...</div>
</div>
<footer class="fixed">...</footer>

CSS中的各种定位规则和规则

.fixed {
    position: fixed;
}

这实现了仅具有 id 滚动移动的 div 的预期效果。但是,这会使页脚不可见。

我想要做的是,一旦滚动 div 的底部到达页脚的底部,将 position: fixed 更改为 position: absolute 然后一切都会一起向上滚动以显示页脚。

但是我不知道该怎么做。我在看waypoints但我有点不知所措。

最佳答案

这样的事情应该可以解决你的问题。试试这个:

$(window).scroll(function () {
    var scrollBottom = $(document).height() - $(window).height() - $(window).scrollTop();

    if (scrollBottom <= $("footer").height()) {
        $("footer").css("position", "absolute");
        } 
        else {
            $("footer").css("position", "fixed");
        }
});

关于javascript - 根据滚动位置更改 css 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18893550/

相关文章:

javascript - 我如何在 bootstrap 中验证至少有一个复选框被标记并将此信息传递给 php?

javascript - jquery $.post 不发送数据

javascript - 从下拉列表中选择和取消选择

javascript - 在 React js 中检测滚动方向

datetime - mobiscroll 的开源替代品

javascript - 使用 JS 在 HTML 中操作 SVG

html - 可以在 ionic 模态视图之外显示元素

jquery - 单击时将带有 jQ​​uery 的图标添加到选择器

html - 带有换行文本的 flexbox 元素之间的间距相等

iphone - drawRect 中的可拉伸(stretch)图像导致滚动缓慢