我有一個網頁與2個堆疊的div與100vh高度每個。我有2個目標:滾動到頁面底部時向下滾動,並向上滾動時順利
- 當用戶向下滾動時,瀏覽器必須一直滾動到第二個div的底部。當用戶向上滾動時,向上滾動到第一個div的頂部。實質上,我只想要允許兩個滾動位置(文檔的頂部和底部)。
- 我希望滾動動畫,以便在向上/向下移動時感覺平滑。這裏
<div class='jumbotron' style='height:100vh;'></div> <div class='content' style='height:100vh;'></div>
我第一次嘗試
標記實現了第一個目標,但不是第二個用下面的代碼。
var lastScrollTop = 0;
$(window).scroll(function(event){
var st = $(this).scrollTop();
if (st > lastScrollTop){
$(window).scrollTop(1000);
}
else {
$(window).scrollTop(0);
}
lastScrollTop = st;
});
我試過下面的代碼,但它有2個問題。首先,向下滾動動畫的速度非常緩慢,因此會讓用戶感到困惑。其次,由於某種原因,一旦瀏覽器滾動到頁面的底部,它就會停留在那裏,永遠不會恢復。
var lastScrollTop = 0;
$(window).scroll(function(event){
var st = $(this).scrollTop();
if (st > lastScrollTop){
$('html, body').animate({
scrollTop: $("#displayed-text").offset().top
}, 2000);
}
else {
$('html, body').animate({
scrollTop: $(".jumbotron").offset().top
}, 2000);
}
lastScrollTop = st;
});
你能指導我找到更好的方法來成功實現這兩個目標嗎?
我想這是在其他情況下'scrollTop的一個錯字( 「超大屏幕 」)$'它不應該是'scrollTop的:$(「 超大屏幕」)偏移( ).top'? – Viney
謝謝,實際上我錯過了添加.offset()頂部 但是,問題仍然存在,當我嘗試向上滾動時,滾動位置卡在第二個div的底部。 – Andrew