| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							
- /** 
 
-  * source: https://pawelgrzybek.com/page-scroll-in-vanilla-javascript/ 
 
-  * 
 
- */
 
- export function scrollIt (destination, duration = 200, easing = 'linear', callback = null) {
 
-   const easings = {
 
-     linear(t) {
 
-       return t;
 
-     },
 
-     easeInQuad(t) {
 
-       return t * t;
 
-     },
 
-     easeOutQuad(t) {
 
-       return t * (2 - t);
 
-     },
 
-     easeInOutQuad(t) {
 
-       return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
 
-     },
 
-     easeInCubic(t) {
 
-       return t * t * t;
 
-     },
 
-     easeOutCubic(t) {
 
-       return (--t) * t * t + 1;
 
-     },
 
-     easeInOutCubic(t) {
 
-       return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
 
-     },
 
-     easeInQuart(t) {
 
-       return t * t * t * t;
 
-     },
 
-     easeOutQuart(t) {
 
-       return 1 - (--t) * t * t * t;
 
-     },
 
-     easeInOutQuart(t) {
 
-       return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * (--t) * t * t * t;
 
-     },
 
-     easeInQuint(t) {
 
-       return t * t * t * t * t;
 
-     },
 
-     easeOutQuint(t) {
 
-       return 1 + (--t) * t * t * t * t;
 
-     },
 
-     easeInOutQuint(t) {
 
-       return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * (--t) * t * t * t * t;
 
-     }
 
-   };
 
-   const start = window.pageYOffset;
 
-   const startTime = 'now' in window.performance ? performance.now() : new Date().getTime();
 
-   const documentHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);
 
-   const windowHeight = window.innerHeight || document.documentElement.clientHeight || document.getElementsByTagName('body')[0].clientHeight;
 
-   const destinationOffset = typeof destination === 'number' ? destination : destination.offsetTop;
 
-   const destinationOffsetToScroll = Math.round(documentHeight - destinationOffset < windowHeight ? documentHeight - windowHeight : destinationOffset);
 
-   if ('requestAnimationFrame' in window === false) {
 
-     window.scroll(0, destinationOffsetToScroll);
 
-     if (callback) {
 
-       callback();
 
-     }
 
-     return;
 
-   }
 
-   function scroll() {
 
-     const now = 'now' in window.performance ? performance.now() : new Date().getTime();
 
-     const time = Math.min(1, ((now - startTime) / duration));
 
-     const timeFunction = easings[easing](time);
 
-     window.scroll(0, Math.ceil((timeFunction * (destinationOffsetToScroll - start)) + start));
 
-     if (window.pageYOffset === destinationOffsetToScroll) {
 
-       if (callback) {
 
-         callback();
 
-       }
 
-       return;
 
-     }
 
-     requestAnimationFrame(scroll);
 
-   }
 
-   scroll();
 
- }
 
- /**
 
-  * 
 
-  * source: https://stackoverflow.com/a/16270434
 
-  */
 
- export function isElementInViewport (el) {
 
-   const rect = el.getBoundingClientRect();
 
-   return rect.bottom > 0 &&
 
-     rect.right > 0 &&
 
-     rect.left < (window.innerWidth || document.documentElement.clientWidth) &&
 
-     rect.top < (window.innerHeight || document.documentElement.clientHeight);
 
- }
 
 
  |