File "scripts.js"
Full Path: /home/fineflavourcocoa/public_html/wp-content/themes/grd/js/scripts.js
File size: 17.39 KB
MIME-type: text/plain
Charset: utf-8
(function ($) {
'use strict';
var grd = grd || {};
grd.init = function () {
grd.$body = $(document.body),
grd.$window = $(window),
grd.$header = $('#masthead');
// Header
this.activeHeaderMenu();
this.menuBlock();
this.searchToggle();
this.mobileMenu();
// Single Portfolio
this.portfolioFilter();
// Single Portfolio
this.teamBox();
// Product
this.productQuickView();
this.productQuantity();
// Scroll Top
this.scrollTop();
this.portfolioLayout();
this.portfolioLoadingAjax();
this.progressbarShortcode();
this.postEntryFormat();
this.stickyHeader();
};
// Sticky Header
grd.stickyHeader = function () {
if ( !grd.$body.hasClass( 'header-sticky' ) ) {
return;
}
grd.$window.on( 'scroll', function () {
var scrollTop = 20,
scroll = grd.$window.scrollTop(),
hHeader = grd.$header.outerHeight( true ),
hTopbar = $( '.topbar' ).outerHeight( true );
hTopbar = hTopbar == undefined ? 0 : hTopbar;
scrollTop = scrollTop + hHeader + hTopbar;
if ( scroll > scrollTop ) {
grd.$header.addClass( 'minimized' );
$( '#grd-header-minimized' ).addClass( 'minimized' );
} else {
grd.$header.removeClass( 'minimized' );
$( '#grd-header-minimized' ).removeClass( 'minimized' );
}
} );
grd.$window.on( 'resize', function () {
var hHeader = grd.$header.outerHeight( true ),
$h = $( '#grd-header-minimized' );
if ( !grd.$body.hasClass( 'header-transparent' ) ) {
$h.height( hHeader );
}
} ).trigger( 'resize' );
};
// Menu Block Right
grd.menuBlock = function () {
var $el = $('.menu-block-right'),
$el_v3 = $('.menu-block-right-v3');
grd.$window.on('resize', function () {
var $wContainer = $('.container').width(),
width = ( grd.$window.width() - $wContainer ) / 2;
$el.css({
'width': width,
'right': width * -1
});
$el_v3.css({
'width': width,
'right': (width - 15) * -1
});
}).trigger('resize');
};
grd.postEntryFormat = function () {
$('.post_format-post-format-video').fitVids({customSelector: 'iframe, video'});
};
// Team Box
grd.teamBox = function () {
var $el = $('.box-banner');
grd.$window.on('resize', function () {
var $wContainer = $('.container').width(),
$wLeft = ($wContainer / 12 ) * 3 - 15,
$wempty = ( grd.$window.width() - $wContainer ) / 2 - 15,
$wImage = ($wLeft + $wempty) - 40;
$el.css({
'width': $wImage,
'left': ( $wImage + 20 ) * -1
});
}).trigger('resize');
};
// Search toggle
grd.searchToggle = function () {
$('a.toggle-search').on('click', function (e) {
e.preventDefault();
$(this).parent().toggleClass('show-search');
});
};
// Mobile Menu
grd.mobileMenu = function () {
var $mobileMenu = $('#primary-mobile-nav');
grd.$header.on('click', '#mf-navbar-toggle', function (e) {
e.preventDefault();
$mobileMenu.toggleClass('open');
grd.$body.toggleClass('open-canvas-panel');
});
$mobileMenu.find('.menu .menu-item-has-children > a').prepend('<span class="toggle-menu-children"></span>');
$mobileMenu.on('click', '.menu-item-has-children > a, .menu-item-has-children > span', function (e) {
e.preventDefault();
openSubMenus($(this));
});
$mobileMenu.on('click', '.close-canvas-mobile-panel', function (e) {
e.preventDefault();
grd.$body.removeClass('open-canvas-panel');
$('#primary-mobile-nav').removeClass('open');
});
$('#off-canvas-layer').on('click', function (e) {
e.preventDefault();
grd.$body.removeClass('open-canvas-panel');
$('#primary-mobile-nav').removeClass('open');
});
grd.$window.on('resize', function () {
if (grd.$window.width() > 1200) {
if ($mobileMenu.hasClass('open')) {
$mobileMenu.removeClass('open');
grd.$body.removeClass('open-canvas-panel');
}
}
});
function openSubMenus($menu) {
$menu.closest('li').siblings().find('ul').slideUp();
$menu.closest('li').siblings().removeClass('active');
$menu.closest('li').siblings().find('li').removeClass('active');
$menu.closest('li').children('ul').slideToggle();
$menu.closest('li').toggleClass('active');
}
};
// Hover Active Header
grd.activeHeaderMenu = function () {
var $el, leftPos, childWidth, newWidth, $origWidth, itemWidth, newItemWidth,
$mainNav = grd.$header.find('ul.menu');
$mainNav.find('li:last-child').addClass('last-child');
$mainNav.append('<li id="mf-active-menu" class="mf-active-menu"></li>');
var $magicLine = $('#mf-active-menu'),
space;
$origWidth = 0;
if ($mainNav.children('li.current-menu-item, li.current-menu-ancestor, li.current-menu-parent').length > 0) {
itemWidth = $mainNav.children('li.current-menu-item, li.current-menu-ancestor, li.current-menu-parent').outerWidth();
//childWidth = $mainNav.children('li.current-menu-item, li.current-menu-ancestor, li.current-menu-parent').children('a').outerWidth();
childWidth = $mainNav.children('li.current-menu-item, li.current-menu-ancestor, li.current-menu-parent').outerWidth();
space = ((itemWidth - childWidth / 2)) / 2;
childWidth = childWidth / 2;
$magicLine
.width(childWidth)
.css('left', $mainNav.children('li.current-menu-item, li.current-menu-ancestor, li.current-menu-parent').position().left + space)
.data('origLeft', $magicLine.position().left)
.data('origWidth', $magicLine.width());
$origWidth = $magicLine.data('origWidth');
}
$mainNav.children('li').on('hover',function () {
$el = $(this);
newItemWidth = $el.outerWidth();
newWidth = $el.children('a').outerWidth();
space = ((newItemWidth - newWidth / 2)) / 2;
newWidth = newWidth / 2;
leftPos = $el.position().left + space;
$magicLine.stop().animate({
left : leftPos,
width: newWidth
});
}, function () {
$magicLine.stop().animate({
left : $magicLine.data('origLeft'),
width: $origWidth
});
});
};
/**
* Initialize isotope for portfolio items
*/
grd.portfolioFilter = function () {
var $items = $('.mf-list-portfolio');
if (!$items.length) {
return;
}
var options = {
itemSelector : '.project-wrapper',
transitionDuration: '0.7s'
};
$items.imagesLoaded(function () {
$(this.elements).isotope(options);
});
var $filter = $('.nav-filter');
$filter.on('click', 'a', function (e) {
e.preventDefault();
var $this = $(this),
selector = $this.attr('data-filter');
$filter.find('a').removeClass('active');
$(this).addClass('active');
$this.closest('.nav-section').next('.mf-list-portfolio').isotope({
filter: selector
});
});
};
/**
* Toggle product quick view
*/
grd.productQuickView = function() {
grd.$body.on('click', '.quick_view_button', function(e) {
e.preventDefault();
var $a = $(this);
quickViewMethod($a)
});
function quickViewMethod($a) {
var url = $a.attr('href'),
$modal = $('#quick-view-modal'),
$product = $modal.find('.product'),
$product_sumary = $modal.find('.product-summary'),
$product_images = $modal.find('.product-images-wrapper'),
$button = $modal.find('.modal-header .close-modal').first().clone();
$product.hide().addClass('invisible');
$product_sumary.html('');
$product_images.html('');
$modal.addClass('loading');
grd.openModal($modal);
$.get(url, function(response) {
var $html = $(response),
$response_summary = $html.find('#content').find('.entry-summary'),
$response_images = $html.find('#content').find('.product-images-content'),
$product_thumbnails = $response_images.find('#product-thumbnails'),
$variations = $response_summary.find('.variations_form'),
$carousel = $response_images.find('#product-images'),
productClasses = $html.find('.product').attr('class');
// Remove unused elements
$product_thumbnails.remove();
$product.addClass(productClasses);
$product_sumary.html($response_summary);
$product_images.html($response_images);
$product.show().prepend($button);
//Force height for images
$carousel.not('.slick-initialized').slick({
slidesToShow : 1,
slidesToScroll: 1,
infinite : false,
prevArrow : '<span class="svg-icon icon-arrow-left slick-prev-arrow"><svg><use xlink:href="#arrow-left"></use></svg></span>',
nextArrow : '<span class="svg-icon icon-arrow-right slick-next-arrow"><svg><use xlink:href="#arrow-right"></use></svg></span>'
});
$modal.removeClass('loading');
$product.removeClass('invisible');
$carousel.find('.photoswipe').on('click', function(e) {
e.preventDefault();
});
if ( typeof wc_add_to_cart_variation_params !== 'undefined' ) {
$variations.wc_variation_form();
$variations.find('.variations select').change();
}
if ( typeof $.fn.tawcvs_variation_swatches_form !== 'undefined' ) {
$variations.tawcvs_variation_swatches_form();
}
$carousel.imagesLoaded(function() {
$carousel.addClass('loaded');
});
grd.productVatiation();
$(document.body).trigger('grd_quick_view_request_success', [$response_summary]);
}, 'html');
}
$('#quick-view-modal').on('click', function(e) {
var target = e.target;
if ( $(target).closest('div.product').length <= 0 ) {
grd.closeModal();
}
});
grd.$body.on('click', '.close-modal', function(e) {
e.preventDefault();
grd.closeModal();
});
};
/**
* Open modal
*
* @param $modal
* @param tab
*/
grd.openModal = function($modal) {
grd.$body.addClass('modal-open');
$modal.fadeIn();
$modal.addClass('open');
};
// Style Variation
grd.productVatiation = function() {
// soopas_variation_swatches_form
grd.$body.on('tawcvs_initialized', function() {
$('.variations_form').unbind('tawcvs_no_matching_variations');
$('.variations_form').on('tawcvs_no_matching_variations', function(event, $el) {
event.preventDefault();
$el.addClass('selected');
$('.variations_form').find('.woocommerce-variation.single_variation').show();
if ( typeof wc_add_to_cart_variation_params !== 'undefined' ) {
$('.variations_form').find('.single_variation').slideDown(200).html('<p>' + wc_add_to_cart_variation_params.i18n_no_matching_variations_text + '</p>');
}
});
});
$('.variations_form').find('td.value').each(function() {
if ( !$(this).find('.variation-selector').hasClass('hidden') ) {
$(this).addClass('show-select');
} else {
$(this).prev().addClass('show-label');
}
});
};
/**
* Open modal
*
* @param $modal
* @param tab
*/
grd.openModal = function($modal) {
grd.$body.addClass('modal-open');
$modal.fadeIn();
$modal.addClass('open');
};
/**
* Close modal
*/
grd.closeModal = function() {
grd.$body.removeClass('modal-open');
$('.grd-modal').fadeOut(function() {
grd.$body.find('#menu-extra-search, #menu-extra-login').removeClass('show');
$(this).removeClass('open');
});
};
/**
* Change product quantity
*/
grd.productQuantity = function() {
grd.$body.on('click', '.quantity .increase, .quantity .decrease', function(e) {
e.preventDefault();
var $this = $(this),
$qty = $this.siblings('.qty'),
current = parseInt($qty.val(), 10),
min = parseInt($qty.attr('min'), 10),
max = parseInt($qty.attr('max'), 10);
min = min ? min : 1;
max = max ? max : current + 1;
if ( $this.hasClass('decrease') && current > min ) {
$qty.val(current - 1);
$qty.trigger('change');
}
if ( $this.hasClass('increase') && current < max ) {
$qty.val(current + 1);
$qty.trigger('change');
}
});
};
// Toggle Menu Sidebar
grd.menuSideBar = function() {
$('#menu-sidebar-panel').find('li.menu-item-has-children > a').on('click', function(e) {
e.preventDefault();
$(this).closest('li').siblings().find('ul.sub-menu').slideUp();
$(this).closest('li').siblings().removeClass('active');
$(this).closest('li').children('ul.sub-menu').slideToggle();
$(this).closest('li').toggleClass('active');
});
};
// Scroll Top
grd.scrollTop = function () {
var $scrollTop = $('#scroll-top');
grd.$window.on('scroll',function () {
if (grd.$window.scrollTop() > grd.$window.height()) {
$scrollTop.addClass('show-scroll');
} else {
$scrollTop.removeClass('show-scroll');
}
});
// Scroll effect button top
$scrollTop.on('click', function (event) {
event.preventDefault();
$('html, body').stop().animate({
scrollTop: 0
},
800
);
});
};
grd.portfolioLayout = function() {
if ( !grd.$body.hasClass('grd-portfolio-isotope') ) {
return;
}
var $portfolioList = $('#grd_portfolio_grid'),
options = {
itemSelector: '.portfolio-wrapper',
layoutMode : 'fitRows',
};
if ( grd.$body.hasClass('portfolio-modern') ) {
options = {
itemSelector: '.portfolio-wrapper',
layoutMode : 'masonry',
masonry : {
columnWidth: '.portfolio-sizer',
gutter : '.gutter-sizer'
}
};
}
$portfolioList.imagesLoaded(function() {
$portfolioList.isotope(options);
});
$('#portfolio-cats-filters').on('click', '.button', function () {
var filterValue = $(this).attr('data-filter');
$portfolioList.isotope({filter: filterValue});
});
$('.button-group').each( function( i, buttonGroup ) {
var $buttonGroup = $( buttonGroup );
$buttonGroup.on( 'click', 'span', function() {
$buttonGroup.find('.active').removeClass('active');
$( this ).addClass('active');
});
});
if ( grd.$body.hasClass('portfolio_full-width') ) {
$('#filters').addClass('container');
}
};
grd.progressbarShortcode = function() {
$('.grd-progressbar').waypoint(function() {
$('.grd-progressbar .line-progress').addClass('animate_progress');
}, { offset: '100%' });
};
/**
* Portfolio ajax
*/
grd.portfolioLoadingAjax = function () {
if (!grd.$body.hasClass('grd-portfolio')) {
return;
}
// Blog page
grd.$body.on('click', '.pag-2 .next', function (e) {
e.preventDefault();
if ($(this).data('requestRunning')) {
return;
}
$(this).data('requestRunning', true);
var $postList = $('#grd_portfolio_grid'),
$pagination = $(this).parents('.navigation'),
$parent = $(this).parent();
$parent.addClass('loader');
$.get(
$(this).attr('href'),
function (response) {
var $content = $(response).find('#grd_portfolio_grid').children('.portfolio-wrapper'),
pagination_html = $(response).find('.navigation').html();
$pagination.html(pagination_html);
$postList.append($content);
$content.imagesLoaded(function () {
$postList.isotope( 'appended', $content );
$pagination.find('.next').data('requestRunning', false);
$parent.removeClass('loader');
});
}
);
});
};
/**
* Document ready
*/
$(function () {
grd.init();
});
})(jQuery);