gpt4 book ai didi

javascript - 粘性侧边栏不会停止滚动

转载 作者:行者123 更新时间:2023-11-29 14:48:29 26 4
gpt4 key购买 nike

我使用以下脚本在我的页面上有一个粘性侧边栏:

$(function() {
var offset = $("#sidebar").offset();
var topPadding = 15;
$(window).scroll(function() {
if ($(window).scrollTop() > offset.top) {
$("#sidebar").stop().animate({
marginTop: $(window).scrollTop() - offset.top + topPadding
});
} else {
$("#sidebar").stop().animate({
marginTop: 0
});
};
});
});

问题是它应该在到达 Middle Block Div 时停止滚动。目前它不会停止滚动并将所有其余内容向下推。有办法解决这个问题吗?

- DEMO -

谢谢。

最佳答案

您需要获取 .middle-block 的位置并在该点停止侧边栏滚动(减去侧边栏的高度)。

将您的 jQuery 函数更改为:

$(function() {
var offset = $("#sidebar").offset();
var mbOffset = $(".middle-block").offset();
var mbPos = mbOffset.top - $("#sidebar").outerHeight() - 30; /*30px extra space*/
var topPadding = 15;
$(window).scroll(function() {
if ($(window).scrollTop() > offset.top ) {
if( $(window).scrollTop() < mbPos ) {
$("#sidebar").stop().animate({
marginTop: $(window).scrollTop() - offset.top + topPadding
});
}
} else {
$("#sidebar").stop().animate({
marginTop: 0
});
};
});
});

Updated Pen

关于javascript - 粘性侧边栏不会停止滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29602787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com