當用戶向上滾動時,我正在使用Marius Craciunoiu technique來顯示我的整個導航欄。僅當在iOS中滾動時才顯示導航欄
所以,這是我的的JavaScript(使用jQuery)代碼:
var delta, didScroll, lastScrollTop, navbarHeight;
delta = 5;
lastScrollTop = 0;
navbarHeight = $('.navbar').outerHeight();
$(window).on('scroll touchmove', function() {
didScroll = true;
});
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
function hasScrolled() {
var scrollTop = $(this).scrollTop();
if (Math.abs(lastScrollTop - scrollTop) <= delta) { return; }
if (scrollTop > lastScrollTop && scrollTop > navbarHeight) {
$('.navbar').addClass('scrolling');
} else {
if (scrollTop + $(window).height() < $(document).height()) {
$('.navbar').removeClass('scrolling');
}
}
lastScrollTop = scrollTop;
}
把它更容易,我發表我的http://jsfiddle.net/caio/7HrK7/代碼。如果您想在iOS中進行測試,請使用http://fiddle.jshell.net/caio/7HrK7/show/light/網址。
視頻:http://hiperload.com/s/ua5k53n0x/d.mp4?inline
如何,你可以看到,我的代碼適用於臺式機和Android手機。但是在iOS上它需要一個觸摸事件來響應,而滾動事件仍然發生,否則它只會在最後執行。我試圖添加touchmove
事件,但沒有成功。你可以幫我嗎?