滚动后使 div 不固定

Make div unfixed after scroll

使用以下代码,我在您滚动到那个 div 后修复了我的 div。 但是,我的侧边栏不会随我滚动,这很好。但我希望它停止,否则它会与页脚重叠。我该怎么做?

我使用了以下代码:

var fixmeTop = $('.whitepaper-section').offset().top;
var footer = $('#footer_bg').offset().top;

if ($(window).width() > 1035) {
    $(window).scroll(function() {
        var currentScroll = $(window).scrollTop();
        if (currentScroll >= fixmeTop && currentScroll <= footer) {
            $('.whitepaper-section').addClass('fixed');
        } else {
            $('.whitepaper-section').removeClass('fixed');
        }
    });
}

网站是https://cashcontroller.nl/nieuws/

此致,乔伦

你很接近。

问题是 currentScroll 永远不会高于您的 footer 位置。

currentScroll 是视口上方的像素数量。因此要传递的元素位置的 "reference" 是视口的顶部。显然,您的页脚永远不会发生这种情况。

所以! 您必须将 .whitepaper-section 高度添加到 currentScroll 并与页脚的位置进行比较。

此外,.whitepaper-section 固定在 top 位置...您也必须添加此距离。我在下面的代码中估计它是 1em。

var fixme = $('.whitepaper-section');
var fixmeTop = fixme.offset().top;
var fixmeHeight = fixme.outerHeight();
var fixedtopOffset = 1em;   // Adjust that with the value you have in CSS .fixed
var footer = $('#footer_bg').offset().top;

if ($(window).width() > 1035) {
    $(window).scroll(function() {
        var currentScroll = $(window).scrollTop();
        if (currentScroll >= fixmeTop && currentScroll + fixmeHeight + fixedtopOffset <= footer) {
            $('.whitepaper-section').addClass('fixed');
        } else {
            $('.whitepaper-section').removeClass('fixed');
        }
    });
}