/* =================================================================== * Imminent 1.0.0 - Main JS * * ------------------------------------------------------------------- */ (function($) { "use strict"; const cfg = { scrollDuration : 800, // smoothscroll duration mailChimpURL : 'https://facebook.us8.list-manage.com/subscribe/post?u=cdb7b577e41181934ed6a6a44&id=e6957d85dc' // mailchimp url }; const $WIN = $(window); // Add the User Agent to the // will be used for IE10/IE11 detection (Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; rv:11.0)) const doc = document.documentElement; doc.setAttribute('data-useragent', navigator.userAgent); /* preloader * -------------------------------------------------- */ const ssPreloader = function() { $("html").addClass('ss-preload'); $WIN.on('load', function() { // force page scroll position to top at page refresh // $('html, body').animate({ scrollTop: 0 }, 'normal'); // will first fade out the loading animation $("#loader").fadeOut("slow", function() { // will fade out the whole DIV that covers the website. $("#preloader").delay(300).fadeOut("slow"); }); // for hero content animations $("html").removeClass('ss-preload'); $("html").addClass('ss-loaded'); }); }; /* pretty print * -------------------------------------------------- */ const ssPrettyPrint = function() { $('pre').addClass('prettyprint'); $( document ).ready(function() { prettyPrint(); }); }; /* slick slider * ------------------------------------------------------ */ const ssSlickSlider = function() { $('.intro-slider').slick({ arrows: false, dots: false, autoplay: true, autoplaySpeed: 3000, fade: true, speed: 3000 }); }; /* modal * ---------------------------------------------------- */ const ssModal = function() { const modal = document.querySelector(".modal"); const trigger = document.querySelector(".modal-trigger"); const closeButton = document.querySelector(".modal__close"); function toggleModal() { modal.classList.toggle("show-modal"); } function windowOnClick(event) { if (event.target === modal) { toggleModal(); } } function pressEsc(event) { if (event.which=='27') { modal.classList.remove("show-modal"); } } trigger.addEventListener("click", toggleModal); closeButton.addEventListener("click", toggleModal); window.addEventListener("click", windowOnClick); window.addEventListener("keyup", pressEsc); }; /* final countdown * ------------------------------------------------------ */ const ssFinalCountdown = function() { const finalDate = '2022/04/07'; $('.counter').countdown(finalDate) .on('update.countdown finish.countdown', function(event) { const str = '
%D D
' + '
%H H
' + '
%M M
' + '
%S S
'; $(this).html(event.strftime(str)); }); }; /* tabs * ---------------------------------------------------- */ const ssTabs = function() { const $tabNavListItems = $("ul.tab-nav__list li"); const $tabContentItem = $(".tab-content__item"); $tabContentItem.hide().first().show(); $tabNavListItems.on('click', function () { $tabNavListItems.removeClass("active"); $(this).addClass("active"); $tabContentItem.hide(); const activeTab = $(this).attr("data-id"); $("#" + activeTab).fadeIn(1000); }); } /* alert boxes * ------------------------------------------------------ */ const ssAlertBoxes = function() { $('.alert-box').on('click', '.alert-box__close', function() { $(this).parent().fadeOut(500); }); }; /* smooth scrolling * ------------------------------------------------------ */ const ssSmoothScroll = function() { $('.smoothscroll').on('click', function (e) { const target = this.hash; const $target = $(target); e.preventDefault(); e.stopPropagation(); $('html, body').stop().animate({ 'scrollTop': $target.offset().top }, cfg.scrollDuration, 'swing').promise().done(function () { window.location.hash = target; }); }); }; /* back to top * ------------------------------------------------------ */ const ssBackToTop = function() { const pxShow = 500; const $goTopButton = $(".ss-go-top") // Show or hide the button if ($(window).scrollTop() >= pxShow) $goTopButton.addClass('link-is-visible'); $(window).on('scroll', function() { if ($(window).scrollTop() >= pxShow) { if(!$goTopButton.hasClass('link-is-visible')) $goTopButton.addClass('link-is-visible') } else { $goTopButton.removeClass('link-is-visible') } }); }; /* ajaxchimp * ------------------------------------------------------ */ const ssAjaxChimp = function() { $('#mc-form').ajaxChimp({ language: 'es', url: cfg.mailChimpURL }); // Mailchimp translation // // Defaults: // 'submit': 'Submitting...', // 0: 'We have sent you a confirmation email', // 1: 'Please enter a value', // 2: 'An email address must contain a single @', // 3: 'The domain portion of the email address is invalid (the portion after the @: )', // 4: 'The username portion of the email address is invalid (the portion before the @: )', // 5: 'This email address looks fake or invalid. Please enter a real email address' $.ajaxChimp.translations.es = { 'submit': 'Submitting...', 0: ' We have sent you a confirmation email', 1: ' You must enter a valid e-mail address.', 2: ' E-mail address is not valid.', 3: ' E-mail address is not valid.', 4: ' E-mail address is not valid.', 5: ' E-mail address is not valid.' } }; /* initialize * ------------------------------------------------------ */ (function ssInit() { ssPreloader(); ssPrettyPrint(); ssSlickSlider(); ssModal(); ssFinalCountdown(); ssTabs(); ssAlertBoxes(); ssSmoothScroll(); ssBackToTop(); ssAjaxChimp(); })(); })(jQuery);