2016-02-19 93 views
2

我正在使用一個簡單的jQuery「滾動到頂部」插件,我在網上找到它,它運行良好。但是,當我離開頁面底部100px時,我想淡出「滾動到頂部」按鈕。誰能幫忙?這裏有一個小提琴 - https://jsfiddle.net/p1em9gph/當你離頁面底部100px時,淡出「滾動到頂部」按鈕

//Check to see if the window is top if not then display button 
$(window).scroll(function(){ 
    if ($(this).scrollTop() > 100) { 
     $('.scrollToTop').fadeIn(); 
    } else { 
     $('.scrollToTop').fadeOut(); 
    } 
}); 

//Click event to scroll to top 
$('.scrollToTop').click(function(){ 
    $('html, body').animate({scrollTop : 0},800); 
    return false; 
}); 
<a href="#" class="scrollToTop">Scroll To Top</a> 
+0

想知道爲什麼它關閉。不用擔心,讓我知道它什麼時候回來。謝謝 –

回答

2

您需要修改其比較scrollTop()是文檔的高度的邏輯,減去窗口的高度,減去100px的距離。試試這個:

//Check to see if the window is top if not then display button 
$(window).scroll(function() { 
    if ($(this).scrollTop() > $(document).height() - $(window).height() - 100) { 
     $('.scrollToTop').fadeIn(); 
    } else { 
     $('.scrollToTop').fadeOut(); 
    } 
}); 

Working example

更新

從您的評論下面這聽起來像你只需要在div顯示當滾動是從頂部或底部100像素,其中情況下,試試這個:

$(window).scroll(function() { 
    if ($(this).scrollTop() < 100 || $(this).scrollTop() > $(document).height() - $(window).height() - 100) { 
     $('.scrollToTop').fadeOut(); 
    } else { 
     $('.scrollToTop').fadeIn(); 
    } 
}); 

Working example

+0

Hi @Rory,謝謝你的回答。當我點擊頁面底部時,我可以看到您的示例淡入「滾動到頂部」按鈕,但是當您從標題中滾動100像素時會出現「滾動到頂部」按鈕,然後當您關閉100像素時消失頁面的底部。我希望這是有道理的。 –

+1

啊,我誤解了邏輯。這是有點奇怪的要求,但是當你已經在頂部時,滾動到頂部按鈕將是可見的。這就是說,你需要做的就是在上面的代碼中將'>'更改爲'<'。 –

+0

謝謝Rory。這聽起來很奇怪,但在上下文中是有道理的。基本上我想'滾動到頂部'按鈕只出現在我的文章的正文,我不希望它出現在標題或頁腳(它目前正在做的)。我改變了< >左右,這完美的作品...除了當你回頭時,它不會消失。謝謝你的幫助。真的很感激它! –