我使用绝对位置将侧边栏粘贴到父div的可见顶部。例如。父DIV位于整个屏幕的X:20%和Y:20%。 Inside Parent 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);
});
答案 0 :(得分: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;
}