Guest User

Untitled

a guest
May 23rd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. var Scrollify = function(){
  2. this.$elements = $('.js-scrollify');
  3. this.$win = $(window);
  4. this.winST = 0;
  5. this.onScroll = function() {
  6. var _this = this;
  7.  
  8. _this
  9. .$elements
  10. .each(function() {
  11. var $this = $(this);
  12. var value = $this.data('scrollify-value');
  13. var elementOT = $this.offset().top + _this.winST;
  14. var elementHeight = $this.outerHeight();
  15. var elementOB = elementOT + $this.outerHeight();
  16. var winHeight = _this.$win.outerHeight();
  17. var winSB = _this.winST + winHeight;
  18.  
  19. if (winSB > elementOT && _this.winST < elementOB) {
  20. var totalScroll = winHeight + elementHeight;
  21. var currentScroll = _this.winST - (elementOT - winHeight);
  22.  
  23. switch($this.data('scrollify-animate')) {
  24. case 'translatey':
  25. $this.css({
  26. 'transform': 'translate(0px, -' + (value * (currentScroll / totalScroll)) + 'px)'
  27. });
  28.  
  29. break;
  30.  
  31. case 'translatex':
  32. $this.css({
  33. 'transform': 'translate(' + (value * (currentScroll / totalScroll)) + 'px, 0px)'
  34. });
  35.  
  36. break;
  37.  
  38. case 'opacity':
  39. $this.css({
  40. 'opacity': value * (currentScroll / totalScroll)
  41. });
  42.  
  43. break;
  44.  
  45. case 'scale':
  46. $this.css({
  47. 'transform': 'scale(' + (value * (currentScroll / totalScroll))+ ')'
  48. });
  49.  
  50. break;
  51. }
  52. }
  53. });
  54. }
  55. };
Add Comment
Please, Sign In to add comment