(function ($, root, undefined) { $(function () { 'use strict'; // hamburger timeline const hamburgerTimeline = gsap.timeline({ paused:true }); const hamburger = $('#hamburger'); const hamburgerFirstSpan = hamburger.find('span.first'); const hamburgerSecondSpan = hamburger.find('span.second'); const hamburgerThirdSpan = hamburger.find('span.third'); let hamburgerMargin = '7'; // move hamburger lines to the middle hamburgerTimeline.to(hamburgerFirstSpan, { duration: .2, y: hamburgerMargin+'px', }); hamburgerTimeline.to(hamburgerThirdSpan, { duration: .2, delay:-.2, y:'-'+hamburgerMargin+'px', width:'100%' }); // rotate hamburger hamburgerTimeline.to(hamburgerFirstSpan, { duration: .2, rotation:45, }); hamburgerTimeline.to(hamburgerSecondSpan, { duration: .2, rotation:45, delay:-.2, }); hamburgerTimeline.to(hamburgerThirdSpan, { duration: .2, delay:-.2, rotation:-45, }); // menu constants const openMenu = gsap.timeline({ paused:true, }); const openMenuButton = $('#hamburger'); let navItems = $('#mobile-nav ul li'); openMenu.to("#mobile-nav", { duration: .8, ease: "Power4.easeInOut", top:'0%', }); openMenu.from($(navItems), { delay:-.5, duration: 1, yPercent: -100, ease: "Expo.easeOut", stagger: 0.05, }); // open menu function openMenuActions(){ $('html').addClass('no-scroll'); hamburgerTimeline.play().timeScale(1); openMenu.play().timeScale(1); } // close menu function closeMenuActions(){ $('html').removeClass('no-scroll'); openMenuButton.removeClass('active'); hamburgerTimeline.reverse().timeScale(-1); openMenu.reverse().timeScale(-3); } // open menu event handler openMenuButton.on("click", function() { // toggle classes $(this).toggleClass('active'); if($(this).hasClass('active')){ openMenuActions(); } else { closeMenuActions(); } }); // scroll to on click $(document).on('click', 'a[href^="#"]', function (event) { event.preventDefault(); closeMenuActions(); let offset = 0; if ($(this).data('offset')) { offset = $(this).data('offset'); } window.setTimeout($('html, body').animate({ scrollTop: $($.attr(this, 'href')).offset().top - offset }, 500), 500) }); }); })(jQuery, this); /*******************************************************************/ /* ftrtch dino */ /* [type: JS] [file:menu] [2.33] DESIGN*/ /*******************************************************************/ /* 0.2 D>D */ /* db 158 */