artemsemkin

Untitled

Aug 22nd, 2020
1,791
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* ======================================================================== */
  2. /* 7. PJAX Transition General */
  3. /* ======================================================================== */
  4. var PJAXTransitionGeneral = {
  5.  
  6.   before() {
  7.     window.InteractiveCursor.drawLoading();
  8.   },
  9.  
  10.   beforeLeave: (data) => {
  11.  
  12.     return new Promise(function (resolve, reject) {
  13.  
  14.       PJAXPrepareTransition(data).then(function () {
  15.         resolve(true)
  16.       });
  17.  
  18.     });
  19.  
  20.   },
  21.  
  22.   leave: (data) => {
  23.  
  24.     return new Promise(function (resolve, reject) {
  25.  
  26.       var
  27.         tl = new TimelineMax(),
  28.         $currentContainer = $(data.current.container);
  29.  
  30.       tl.timeScale(1.5);
  31.  
  32.       if (!$overlay.hasClass('opened')) {
  33.  
  34.         tl.to($currentContainer, 1.2, {
  35.           x: '10vw',
  36.           force3D: true,
  37.           transformOrigin: 'left center',
  38.           ease: Expo.easeInOut
  39.         });
  40.  
  41.         tl
  42.           .to($curtains, 0.6, {
  43.             scaleX: 1,
  44.             transformOrigin: 'left center',
  45.             ease: Expo.easeInOut
  46.           }, '0.2');
  47.  
  48.       }
  49.  
  50.       tl
  51.         .add(function () {
  52.           window.$header.removeClass('header_black').addClass('header_white');
  53.         }, '0')
  54.         .add(function () {
  55.           $currentContainer.remove();
  56.           resolve(true);
  57.         });
  58.  
  59.     });
  60.  
  61.   },
  62.  
  63.   enter: (data) => {
  64.  
  65.     return new Promise(function (resolve, reject) {
  66.  
  67.       PJAXInitNewPage(data).then(function () {
  68.         resolve(true)
  69.       });
  70.  
  71.     });
  72.  
  73.   },
  74.  
  75.   afterEnter: (data) => {
  76.  
  77.     return new Promise(function (resolve, reject) {
  78.  
  79.       var
  80.         tl = new TimelineMax(),
  81.         $nextContainer = $(data.next.container),
  82.         $nextMasthead = $nextContainer.find('.section-masthead').first(),
  83.         $nextBg = $nextMasthead.find('.section-masthead__background .art-parallax__bg');
  84.  
  85.       tl
  86.         .set($burger, {
  87.           className: '-=header__burger_opened'
  88.         })
  89.         .set($nextContainer, {
  90.           autoAlpha: 1,
  91.           x: '-5vw',
  92.           force3D: true,
  93.           transformOrigin: 'right center',
  94.         });
  95.  
  96.       // animate (close) header if it's opened
  97.       if (window.$pageHeader.hasClass('opened')) {
  98.  
  99.         var tlClose = $nextBg.length ? window.PageHeader.hideOverlayMenu(false) : window.PageHeader.hideOverlayMenu(true);
  100.  
  101.         tl
  102.           .add(tlClose, '0')
  103.           .set(window.$overlay, {
  104.             className: '+=intransition'
  105.           })
  106.           .to($nextContainer, 1.2, {
  107.             x: '0vw',
  108.             force3D: true,
  109.             ease: Expo.easeInOut
  110.           });
  111.  
  112.       } else {
  113.  
  114.         tl
  115.           .to($nextContainer, 1.2, {
  116.             x: '0vw',
  117.             force3D: true,
  118.             ease: Expo.easeInOut
  119.           })
  120.           .to(window.$curtains, 0.6, {
  121.             scaleX: 0,
  122.             transformOrigin: 'right center',
  123.             ease: Expo.easeInOut
  124.           }, '0.3');
  125.  
  126.       }
  127.  
  128.       tl
  129.         .set(window.$overlay, {
  130.           className: '+=intransition'
  131.         })
  132.         .add(function () {
  133.           resolve(true);
  134.         }, '-=0.3');
  135.  
  136.  
  137.     });
  138.  
  139.   },
  140.  
  141.   after: (data) => {
  142.  
  143.     return new Promise(function (resolve, reject) {
  144.       PJAXFinishLoading(data).then(function () {
  145.         resolve(true);
  146.       });
  147.  
  148.     });
  149.  
  150.   }
  151.  
  152. }
RAW Paste Data