2012-02-05 53 views
0
$(window).scroll(function(e){ 
    if($(this).scrollTop()>=400) $('#jtop').show('slow'); 
    if($(this).scrollTop()<400) if($('#jtop').width()) $('#jtop').hide('slow'); 
}); 

我使用的功能,以確定是否有人向下滾動超過400的切換圖像,它的工作很好,但是當我試圖得到通知,如果有人達到我的頁腳的頂部位置它不會返回預期值。我使用偏移()。頂部,但它會提醒我,當我向下滾動到底部0.我只想知道用戶何時進入和離開我的頁腳。希望有人能幫助我。提前致謝。 如果你想看到它在行動,那麼這裏是鏈接heera.it最高點偏移不返回預期值

非工作代碼

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'); 
    }); 
+0

我們需要看到您的工作代碼。不是你的工作代碼。你如何檢查是否有人在頁腳? – mrtsherman 2012-02-05 07:21:37

+0

給我非工作代碼。 – 2012-02-05 07:42:30

+0

奇怪的是,這應該工作。如果我輸入$('#footer')。offset()。top;從控制檯我得到適當的高度,1700東西。克里斯是正確的,但你應該添加視口高度。該代碼告訴你什麼時候屏幕頂部出現了一個節目。 – mrtsherman 2012-02-05 07:47:24

回答

0

這只是一種猜測,但計算時,您的頁腳的頂部位置很可能被正確計算了,所以頁腳是否已達到將涉及計算是否滾動高度視高度一起達到頁腳的頂部位置。

這有意義嗎?如果頁腳的頂部位置是1000px,那麼窗口的滾動高度和視口的高度將會告訴我們是否已經到達頁腳。我所做的努力畫上等號只是滾動高度值,如果頁腳已經完全達到了屏幕的頂部這將只顯示錯誤。

所以一些代碼:

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!"); 
    } 

}); 

希望這有助於和有意義!

+1

謝謝你,我一開始沒有明白。 – 2012-02-05 08:15:11

1

這應該爲你工作。這是Chris的答案,只是用你的代碼格式化。所以如果你感到高興,就接受他。

http://jsfiddle.net/eL4HR/

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'); 
}); 
+0

是的,我現在很開心,正如你所說我應該接受克里斯的回答,所以我會,這是公平的。如果可能的話,你能否以簡單的方式解釋這個事實,我非常計算一週。謝謝! – 2012-02-05 08:14:20

+0

謝謝你mrtsherman ..! :) – 2012-02-05 11:44:39