Guest User

Untitled

a guest
Mar 18th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. // Scroll to top (Event Listenter)
  2. document.querySelector('#to-top').onclick = () => {
  3. scrollTo(document.documentElement, 0, 500);
  4. }
  5.  
  6. // Scroll to function
  7. const scrollTo = (element, to, duration) => {
  8. let start = element.scrollTop,
  9. change = to - start,
  10. currentTime = 0,
  11. increment = 20;
  12.  
  13. let animateScroll = () => {
  14. currentTime += increment;
  15. let val = Math.easeInOutQuad(currentTime, start, change, duration);
  16. element.scrollTop = val;
  17. if (currentTime < duration) {
  18. setTimeout(animateScroll, increment);
  19. }
  20. };
  21.  
  22. animateScroll();
  23. }
  24.  
  25. // Ease function
  26. Math.easeInOutQuad = (t, b, c, d) => {
  27. t /= d / 2;
  28. if (t < 1) return c / 2 * t * t + b;
  29. t--;
  30. return -c / 2 * (t * (t - 2) - 1) + b;
  31. };
Add Comment
Please, Sign In to add comment