colorized light, text formatting
[kengrimes.com/theme.git] / static / js / speedy.js
index abd4d6f..d48ee08 100644 (file)
@@ -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();
 }