javascript - 滚动时固定边栏的计算

标签 javascript jquery html css

我使用绝对位置让侧边栏贴在父 div 的可视顶部。例如。父 DIV 位于整个屏幕的 X:20% 和 Y:20%。在父 Div 内部,我有一个绝对定位的侧边栏 DIV,它设置为 Top:0 和 Right:0。

随着父 div 的滚动,我增加了 margin-top 以便始终保持在可视区域的顶部。我一直在为这个计算而苦苦挣扎,似乎无法区分 pageOffset、scollTop 等。我已经通过 w3schools,它仍然没有意义。

这是我到目前为止的计算结果,但出于某种原因,在 IE 中边栏会跳转。任何帮助将不胜感激。提前致谢

var s = $(".sidebar");
var pos = s.position();
$(window).scroll(function () {
    var windowpos = $(window).scrollTop();
    (windowpos >= 270) ? s.css("marginTop", Math.floor($(window).scrollTop() - 270) + "px") : s.css("marginTop", 0);
});

最佳答案

如果我理解正确,这应该是一个很好的例子:

var s = $(".sidebar");
var pos = s.offset().top;

    $(window).scroll(function () {
        if ($(window).scrollTop() >= pos) {
            s.addClass('new-styles');
        } else {
            s.removeClass('new-styles');
        }
    });

样式:

.sidebar {
    position: absolute; // or relative
    top: 100px;
}
.new-styles {
    position: fixed;
    top: 0;
}

关于javascript - 滚动时固定边栏的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28878663/

相关文章:

javascript - 创建事件

javascript - JSX 中的 eslint "parsing error: Unexpected token {"

javascript - 如何打印 $rootScope 变量?

javascript - 有人能发现问题吗?只有第一个选项适用于选择

html - Flexbox 内容显示不正确

javascript - 当用户向下滚动时更改 CSS 显示。没有 jQuery

javascript - IE8 Jquery 1.8.3 问题 : Syntax error line 2 chart 13575

javascript - 有没有更简单的方法在一个 UL 中获取 LI 列表编号?

ajax - 如何通过tooltip显示数据库中的数据?

javascript - 页面顶部的 JSF 滚动条