X-Git-Url: https://www.kengrimes.com/gitweb/?p=kengrimes.com%2Ftheme.git;a=blobdiff_plain;f=static%2Fjs%2Fspeedy.js;h=d48ee08d2c55c643d82c125250742dec2b4b6a46;hp=abd4d6f6fd75665f22132a6566a9ce453263b575;hb=c1fdc7cadf2874c660a53de3003668edc36e6200;hpb=89599f9d5c5e4e5b8fa50c39e34dd502293fa1f7 diff --git a/static/js/speedy.js b/static/js/speedy.js index abd4d6f..d48ee08 100644 --- a/static/js/speedy.js +++ b/static/js/speedy.js @@ -23,30 +23,41 @@ window.onload = () => { updateNav() 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' + const _downDelay = 32 + let downDelay = _downDelay + const _upDelay = 16 + let upDelay = 0 + nav.style.top = '0px' + let top = 0 const navUpdate = () => { if (window.matchMedia("(orientation: portrait)").matches) { if (window.scrollY < oldScrollY) /* up */ { - if (upDelay-- <= 0) + if (top === 0) downDelay = _downDelay - navUp() + else if (upDelay-- <= 0) { + top = Math.min(top + (oldScrollY - window.scrollY), 0) + nav.style.top = top + 'px' + } } - else { + else if (window.scrollY > oldScrollY) /* down */{ + if (downDelay-- <= 0) { + top = Math.max(top - (window.scrollY - oldScrollY), -nav.offsetHeight) + nav.style.top = top + 'px' + } upDelay = _upDelay - if(downDelay-- <= 0) - navDown() - else - navUp() } - oldScrollY = window.scrollY + window.requestAnimationFrame(navUpdate) } - window.requestAnimationFrame(navUpdate) + else { + if (top != 0) { + top = 0 + nav.style.top = '0px' + upDelay = _upDelay + downDelay = _downDelay + } + setTimeout(navUpdate, 1000) + } + oldScrollY = window.scrollY } navUpdate(); }