2017-02-21 68 views
1

我希望瀏覽器在滾動時自動滾動到某個部分。 以便觀看者無法看到兩部分之間的屏幕(每部分的高度爲1 vh)。只有最後一節#接觸的大小不是1 vh。自動滾動javascript

我有一個腳本工作,但必須有一個更好,更乾淨的方式。此代碼適用於Chrome,但我必須等待一段時間,直到我可以再次滾動。它不適用於Firefox

有人能告訴我如何正確完成或告訴我是否有插件?我找不到任何東西!

var lastScrollTop = 0; 
$(window).scroll(function(event){ 
var height = $(window).scrollTop(); 
var vheight = $(window).height(); 

if (height >= lastScrollTop){ 

if(height > 1 && height < 100) { 
    $('html,body').animate({ 
     scrollTop: $('#mission').offset().top 
    }, 500); 
} 


if(height > 2 * vheight + 1 && height < 2 * vheight + 200){ 
    $('html,body').animate({ 
     scrollTop: $('#about').offset().top 
    }, 500); 
} 

if(height > 3 * vheight + 1 && height < 3 * vheight + 200){ 
    $('html,body').animate({ 
     scrollTop: $('#contact').offset().top 
    }, 500); 
    $('#scrollAbout').hide(500); 

} 

} else { 
    var docheight = $(document).height(); 
    docheight -= vwheight; 

    if(height < vheight - 1 && height > vheight - 200) { 
     $('html,body').animate({ 
     scrollTop: $('#home').offset().top 
     }, 500); 
    } 



    if(height < 3 * vheight - 1 && height > 3 *vheight - 200){ 
     $('html,body').animate({ 
     scrollTop: $('#case-studies').offset().top 
     }, 500); 
    } 

    if(height < docheight - 1 && height > docheight - 100){ 
     $('html,body').animate({ 
     scrollTop: $('#about').offset().top 
     }, 500); 
     $('#scrollAbout').show(500); 

    } 


} 
lastScrollTop = height; 

回答

0

這聽起來像你正在尋找像fullPage.js圖書館的東西。

更具體地說this scenario,其中最後一部分不是全屏但仍然自動滾動。 您可以通過使用fp-auto-height類作爲詳細的in the documentation來實現此目的。

Here's a codepen

+0

正是我在找的東西。非常感謝! –

+0

然後,您可以接受(綠色勾號),並提出答案,以幫助和定位其他人也可能最終在這個相同的問題! – Alvaro