Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. var animate_scroll_listener;
  2. function begin_scroll_checker() {
  3. animate_scroll_listener = scroll_check();
  4. window.addEventListener('scroll', animate_scroll_listener);
  5. }
  6. begin_scroll_checker();
  7. var watch_elements = $('.watch-scroll');
  8. var scrolled_elements = 0;
  9. function scroll_check() {
  10. return function scroll_event() {
  11. watch_elements.each(function(){
  12. if( $(this).hasClass('animate') ) return;
  13. if( isElementInViewport(this) ) {
  14. // Element is in viewport, click
  15. $(this).addClass('animate');
  16. scrolled_elements++;
  17. }
  18. });
  19. if( scrolled_elements >= watch_elements.length ) {
  20. // no more elements, remove scroll event
  21. window.removeEventListener('scroll', animate_scroll_listener);
  22. }
  23. }
  24. }
  25. function isElementInViewport(el) {
  26. if ( document.documentElement.clientWidth <= 767 && document.documentElement.clientHeight < document.documentElement.clientWidth ) {
  27. return $(el).is(':visible');
  28. }
  29.  
  30. if (typeof jQuery === "function" && el instanceof jQuery) {
  31. el = el[0];
  32. }
  33.  
  34. var rect = el.getBoundingClientRect();
  35.  
  36. return (
  37. rect.top >= 0 &&
  38. rect.left >= 0 &&
  39. rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
  40. rect.right <= (window.innerWidth || document.documentElement.clientWidth)
  41. );
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement