Guest User

Untitled

a guest
Dec 12th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. <script>
  2. var parallax = {
  3. elementClass: '.js-parallax',
  4. complete() {
  5. var parallaxElements = $(this.elementClass);
  6. parallaxElements.addClass('is-loaded');
  7. },
  8. animateElement() {
  9. var self = this;
  10. var parallaxElements = $(this.elementClass);
  11. window.requestAnimationFrame(function() {
  12. for (var i = 0; i < parallaxElements.length; i++) {
  13. var currentElement = parallaxElements.eq(i);
  14. var direction = currentElement.data('parallax-direction');
  15. var scrolled = $(window).scrollTop();
  16. var elementPosition = currentElement.offset().top;
  17. var start = elementPosition - scrolled;
  18. var sensitivity = 0.02;
  19. var translateY = direction === 'up' ? Math.floor(start * sensitivity) : Math.floor(start * -(sensitivity));
  20. currentElement.css({
  21. transition: 'transform 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275)',
  22. transform: 'translate3d(0px, ' + translateY + 'px, 0px)' // transform performs better
  23. });
  24. self.complete();
  25. }
  26. });
  27. },
  28. init() {
  29. var self = this;
  30. if($(window).width() > 767) {
  31. this.animateElement();
  32. // throttle scrolling with lodash for better performance
  33. window.addEventListener('scroll', _.throttle(function() {
  34. self.animateElement();
  35. }, 300, { trailing: true, leading: true }));
  36. }
  37. }
  38. };
  39. parallax.init();
  40. </script>
Add Comment
Please, Sign In to add comment