From e8b08f1a91c8918666793cacae6177f4f7cb3186 Mon Sep 17 00:00:00 2001 From: Toshaan Bharvani Date: Wed, 24 Mar 2021 02:00:20 +0100 Subject: [PATCH] add missing main.js file Signed-off-by: Toshaan Bharvani --- themes/openpowerfoundation/assets/js/main.js | 125 +++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 themes/openpowerfoundation/assets/js/main.js diff --git a/themes/openpowerfoundation/assets/js/main.js b/themes/openpowerfoundation/assets/js/main.js new file mode 100644 index 0000000..bc364dc --- /dev/null +++ b/themes/openpowerfoundation/assets/js/main.js @@ -0,0 +1,125 @@ +jQuery(document).ready(function($) { + + // Header fixed and Back to top button + $(window).scroll(function() { + if ($(this).scrollTop() > 100) { + $('.back-to-top').fadeIn('slow'); + $('#header').addClass('header-fixed'); + } else { + $('.back-to-top').fadeOut('slow'); + $('#header').removeClass('header-fixed'); + } + }); + $('.back-to-top').click(function() { + $('html, body').animate({ + scrollTop: 0 + }, 1500, 'easeInOutExpo'); + return false; + }); + + // Initiate the wowjs animation library + new WOW().init(); + + // Initiate superfish on nav menu + $('.nav-menu').superfish({ + animation: { + opacity: 'show' + }, + speed: 400 + }); + + // Mobile Navigation + if ($('#nav-menu-container').length) { + var $mobile_nav = $('#nav-menu-container').clone().prop({ + id: 'mobile-nav' + }); + $mobile_nav.find('> ul').attr({ + 'class': '', + 'id': '' + }); + $('body').append($mobile_nav); + $('body').prepend(''); + $('body').append('
'); + $('#mobile-nav').find('.menu-has-children').prepend(''); + + $(document).on('click', '.menu-has-children i', function(e) { + $(this).next().toggleClass('menu-item-active'); + $(this).nextAll('ul').eq(0).slideToggle(); + $(this).toggleClass("fa-chevron-up fa-chevron-down"); + }); + + $(document).on('click', '#mobile-nav-toggle', function(e) { + $('body').toggleClass('mobile-nav-active'); + $('#mobile-nav-toggle i').toggleClass('fa-times fa-bars'); + $('#mobile-body-overly').toggle(); + }); + + $(document).click(function(e) { + var container = $("#mobile-nav, #mobile-nav-toggle"); + if (!container.is(e.target) && container.has(e.target).length === 0) { + if ($('body').hasClass('mobile-nav-active')) { + $('body').removeClass('mobile-nav-active'); + $('#mobile-nav-toggle i').toggleClass('fa-times fa-bars'); + $('#mobile-body-overly').fadeOut(); + } + } + }); + } else if ($("#mobile-nav, #mobile-nav-toggle").length) { + $("#mobile-nav, #mobile-nav-toggle").hide(); + } + + // Smoth scroll on page hash links + $('.nav-menu a, #mobile-nav a, .scrollto').on('click', function() { + if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { + var target = $(this.hash); + if (target.length) { + var top_space = 0; + + if ($('#header').length) { + top_space = $('#header').outerHeight(); + + if( ! $('#header').hasClass('header-fixed') ) { + top_space = top_space - 20; + } + } + + $('html, body').animate({ + scrollTop: target.offset().top - top_space + }, 1500, 'easeInOutExpo'); + + if ($(this).parents('.nav-menu').length) { + $('.nav-menu .menu-active').removeClass('menu-active'); + $(this).closest('li').addClass('menu-active'); + } + + if ($('body').hasClass('mobile-nav-active')) { + $('body').removeClass('mobile-nav-active'); + $('#mobile-nav-toggle i').toggleClass('fa-times fa-bars'); + $('#mobile-body-overly').fadeOut(); + } + return false; + } + } + }); + + // Gallery - uses the magnific popup jQuery plugin + $('.gallery-popup').magnificPopup({ + type: 'image', + removalDelay: 300, + mainClass: 'mfp-fade', + gallery: { + enabled: true + }, + zoom: { + enabled: true, + duration: 300, + easing: 'ease-in-out', + opener: function(openerElement) { + return openerElement.is('img') ? openerElement : openerElement.find('img'); + } + } + }); + + // custom code + +});