Jquery 偏移顶部不返回预期值 $(窗口)。滚动(功能(e){ 如果($(this).scrollTop()>=400)$('#jtop').show('slow'); 如果($(this).scrollTop()=400) { $('jtop')。show('slow'); } if($(this.scrollTop()=ftop)console.log('true'); 如果($(this).scrollTop()

Jquery 偏移顶部不返回预期值 $(窗口)。滚动(功能(e){ 如果($(this).scrollTop()>=400)$('#jtop').show('slow'); 如果($(this).scrollTop()=400) { $('jtop')。show('slow'); } if($(this.scrollTop()=ftop)console.log('true'); 如果($(this).scrollTop(),jquery,Jquery,这只是一个猜测,但您的页脚的顶部位置可能已经正确计算,因此在计算是否已到达页脚时,需要计算滚动高度和视口高度是否一起到达页脚的顶部位置 这有意义吗?如果页脚的顶部位置是1000px,那么窗口的滚动高度和视口的高度将告诉我们是否已经到达页脚。我犯了一个错误,试图仅将滚动高度值相等,只有页脚完全到达屏幕顶部时才会显示 因此,对于某些代码: var ftop=$('#footer').offset().top; $(window).scroll(function(e){

这只是一个猜测,但您的页脚的顶部位置可能已经正确计算,因此在计算是否已到达页脚时,需要计算滚动高度和视口高度是否一起到达页脚的顶部位置

这有意义吗?如果页脚的顶部位置是1000px,那么窗口的滚动高度和视口的高度将告诉我们是否已经到达页脚。我犯了一个错误,试图仅将滚动高度值相等,只有页脚完全到达屏幕顶部时才会显示

因此,对于某些代码:

    var ftop=$('#footer').offset().top;
    $(window).scroll(function(e){
        if($(this).scrollTop()>=400)
        {
            $('#jtop').show('slow');
        }
        if($(this).scrollTop()<400)
        {
            if($('#jtop').width()) $('#jtop').hide('slow');
        }
        if($(this).scrollTop()>=ftop)   console.log('true');
        if($(this).scrollTop()<ftop)    console.log('false');
    });

希望这有帮助并且有意义!

这应该对你有用。这是Chris的答案,只是用你的代码格式化。如果你高兴,就接受他的答案

var ftop=$('#footer').offset().top;
$(窗口)。滚动(功能(e){
如果($(this).scrollTop()>=400){
$('jtop')。show('slow');
}
if($(this).scrollTop()<400){
if($('jtop').width())$('jtop').hide('slow');
}
if($(this.scrollTop()+$(this.height()>=ftop)console.log('true');
else console.log('false');
});

我们需要查看您的非工作代码,而不是工作代码。您如何检查是否有人在页脚处?奇怪,这应该可以。如果我输入$('#footer')。offset().top;从控制台我得到了正确的高度,1700左右。Chris是正确的,但是,你应该添加视口高度。该代码告诉你什么时候屏幕顶部出现了要显示的内容。我也很困惑,不管怎样,我想在用户跨过400px时显示一个图像,如果用户到达页脚并再次想要重新显示,我想更改该图像当用户离开页脚时存储上一张图片,当他/她少于440像素的scrollTop时想隐藏图片。有什么想法吗?是的,我现在很高兴,正如你说的,我应该接受Chris的回答,所以我会的,这很公平。如果可能的话,你能简单地解释一下这个事实,我很忙。谢谢!
    var ftop=$('#footer').offset().top;
    $(window).scroll(function(e){
        if($(this).scrollTop()>=400)
        {
            $('#jtop').show('slow');
        }
        if($(this).scrollTop()<400)
        {
            if($('#jtop').width()) $('#jtop').hide('slow');
        }
        if($(this).scrollTop()>=ftop)   console.log('true');
        if($(this).scrollTop()<ftop)    console.log('false');
    });
var footer_top = $("#footer").position().top;

$(window).scroll(function(e) {

    var scroll_top = $(this).scrollTop();
    var viewport_height = $(this).height();

    if (scroll_top + viewport_height >= footer_top) {
        alert("Footer reached!");
    }

});
var ftop = $('#footer').offset().top;
$(window).scroll(function(e) {
    if ($(this).scrollTop() >= 400) {
        $('#jtop').show('slow');
    }
    if ($(this).scrollTop() < 400) {
        if ($('#jtop').width()) $('#jtop').hide('slow');
    }
    if ($(this).scrollTop() + $(this).height() >= ftop) console.log('true');
    else console.log('false');
});