+
+ let oldScrollY = window.scrollY
+ const _downDelay = 15
+ let downDelay = 0
+ const _upDelay = 5
+ let upDelay = _upDelay
+ const navUp = () => nav.style.top = Math.min(parseInt(nav.style.top,10) + (oldScrollY - window.scrollY), 0) + 'px'
+ const navDown = () => nav.style.top = Math.max(parseInt(nav.style.top,10) - (window.scrollY - oldScrollY), -nav.offsetHeight) + 'px'
+ nav.style.top = 0 + 'px'
+ window.onscroll = () => {
+ if (window.matchMedia("(orientation: portrait)").matches) {
+ if (window.scrollY < oldScrollY) /* up */ {
+ if (upDelay-- <= 0)
+ downDelay = _downDelay
+ navUp()
+ }
+ else {
+ upDelay = _upDelay
+ if(downDelay-- <= 0)
+ navDown()
+ else
+ navUp()
+ }
+ oldScrollY = window.scrollY
+ }
+ }