diff options
Diffstat (limited to 'app/javascript/flavours/glitch/utils/scroll.js')
-rw-r--r-- | app/javascript/flavours/glitch/utils/scroll.js | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/app/javascript/flavours/glitch/utils/scroll.js b/app/javascript/flavours/glitch/utils/scroll.js deleted file mode 100644 index 84fe58269..000000000 --- a/app/javascript/flavours/glitch/utils/scroll.js +++ /dev/null @@ -1,32 +0,0 @@ -const easingOutQuint = (x, t, b, c, d) => c * ((t = t / d - 1) * t * t * t * t + 1) + b; - -const scroll = (node, key, target) => { - const startTime = Date.now(); - const offset = node[key]; - const gap = target - offset; - const duration = 1000; - let interrupt = false; - - const step = () => { - const elapsed = Date.now() - startTime; - const percentage = elapsed / duration; - - if (percentage > 1 || interrupt) { - return; - } - - node[key] = easingOutQuint(0, elapsed, offset, gap, duration); - requestAnimationFrame(step); - }; - - step(); - - return () => { - interrupt = true; - }; -}; - -const isScrollBehaviorSupported = 'scrollBehavior' in document.documentElement.style; - -export const scrollRight = (node, position) => isScrollBehaviorSupported ? node.scrollTo({ left: position, behavior: 'smooth' }) : scroll(node, 'scrollLeft', position); -export const scrollTop = (node) => isScrollBehaviorSupported ? node.scrollTo({ top: 0, behavior: 'smooth' }) : scroll(node, 'scrollTop', 0); |