1
我的代碼,我的動畫導航向上(關閉屏幕),當用戶向下滾動,並且動畫了回去當用戶滾動起來。解決野生動物園「反彈」問題
然而,在Safari當用戶滾動起來以更快的速度,頁面「反彈」位上方,這使得我的導航動畫了當用戶在頂部。有沒有辦法解決這個問題?
我的代碼
jQuery(document).ready(function($){
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var navbarHeight = $('nav').outerHeight(true);
$(window).scroll(function(event) { didScroll = true; });
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 100);
function hasScrolled() {
if($(window).width() > 768) {
var st = $(this).scrollTop();
if (Math.abs(lastScrollTop - st) <= delta)
return;
if (st > lastScrollTop) {
// Scroll Down
$('#screen-nav').removeClass('nav-down').addClass('nav-up');
} else {
$('#screen-nav').removeClass('nav-up').addClass('nav-down');
}
}
lastScrollTop = st;
}
});
相信定時器是滾動事件的反跳。 –
(這是一個不幸的術語碰撞:我的意思去抖作爲限速,還不如在滾動抖動) –
是的,我猜它可能是降低頻率,並允許滾動到達三角洲的嘗試。我想你可以通過在滾動事件發生時啓動一個'setTimeout'來做同樣的事情,並取消任何現有的事件。 – BoffinbraiN