File: /var/www/html/wpmuhibbah_err/wp-content/themes/goodwish/assets/js/modules/portfolio.js
(function($) {
'use strict';
var portfolio = {};
edgtf.modules.portfolio = portfolio;
portfolio.edgtfOnDocumentReady = edgtfOnDocumentReady;
portfolio.edgtfOnWindowLoad = edgtfOnWindowLoad;
portfolio.edgtfOnWindowResize = edgtfOnWindowResize;
portfolio.edgtfOnWindowScroll = edgtfOnWindowScroll;
portfolio.edgtfPortfolioSingleMasonry = edgtfPortfolioSingleMasonry;
$(document).ready(edgtfOnDocumentReady);
$(window).on('load', edgtfOnWindowLoad);
$(window).resize(edgtfOnWindowResize);
$(window).scroll(edgtfOnWindowScroll);
/*
All functions to be called on $(document).ready() should be in this function
*/
function edgtfOnDocumentReady() {
edgtfPortfolioSingleMasonry();
}
/*
All functions to be called on $(window).load() should be in this function
*/
function edgtfOnWindowLoad() {
edgtfPortfolioSingleFollow().init();
}
/*
All functions to be called on $(window).resize() should be in this function
*/
function edgtfOnWindowResize() {
}
/*
All functions to be called on $(window).scroll() should be in this function
*/
function edgtfOnWindowScroll() {
}
var edgtfPortfolioSingleFollow = function() {
var info = $('.edgtf-follow-portfolio-info .small-images.edgtf-portfolio-single-holder .edgtf-portfolio-info-holder, ' +
'.edgtf-follow-portfolio-info .small-slider.edgtf-portfolio-single-holder .edgtf-portfolio-info-holder');
if (info.length) {
var infoHolder = info.parent(),
infoHolderOffset = infoHolder.offset().top,
infoHolderHeight = infoHolder.height(),
mediaHolder = $('.edgtf-portfolio-media'),
mediaHolderHeight = mediaHolder.height(),
header = $('.header-appear, .edgtf-fixed-wrapper'),
headerHeight = (header.length) ? header.height() : 0;
}
var infoHolderPosition = function() {
if(info.length) {
if (mediaHolderHeight > infoHolderHeight) {
if(edgtf.scroll > infoHolderOffset) {
var marginTop = edgtf.scroll - infoHolderOffset + edgtfGlobalVars.vars.edgtfAddForAdminBar + headerHeight + 20; //20 px is for styling, spacing between header and info holder
// if scroll is initially positioned below mediaHolderHeight
if(marginTop + infoHolderHeight > mediaHolderHeight){
marginTop = mediaHolderHeight - infoHolderHeight;
}
info.animate({
marginTop: marginTop
});
}
}
}
};
var recalculateInfoHolderPosition = function() {
if (info.length) {
if(mediaHolderHeight > infoHolderHeight) {
if(edgtf.scroll > infoHolderOffset) {
if(edgtf.scroll + headerHeight + edgtfGlobalVars.vars.edgtfAddForAdminBar + infoHolderHeight + 100 < infoHolderOffset + mediaHolderHeight) { //70 to prevent mispositioning
//Calculate header height if header appears
if ($('.header-appear, .edgtf-fixed-wrapper').length) {
headerHeight = $('.header-appear, .edgtf-fixed-wrapper').height();
}
info.stop().animate({
marginTop: (edgtf.scroll - infoHolderOffset + edgtfGlobalVars.vars.edgtfAddForAdminBar + headerHeight + 20) //20 px is for styling, spacing between header and info holder
});
//Reset header height
headerHeight = 0;
}
else{
info.stop().animate({
marginTop: mediaHolderHeight - infoHolderHeight
});
}
} else {
info.stop().animate({
marginTop: 0
});
}
}
}
};
return {
init : function() {
infoHolderPosition();
$(window).scroll(function(){
recalculateInfoHolderPosition();
});
}
};
};
/**
* Init Portfolio Single Masonry
*/
function edgtfPortfolioSingleMasonry(){
var gallery = $('.edgtf-portfolio-single-holder.small-masonry .edgtf-portfolio-media, .edgtf-portfolio-single-holder.big-masonry .edgtf-portfolio-media');
if(gallery.length) {
gallery.each(function () {
var thisGallery = $(this);
thisGallery.waitForImages(function () {
var size = thisGallery.find('.edgtf-single-masonry-grid-sizer').width();
edgtfPortfolioSingleResizeMasonry(size,thisGallery);
edgtfInitSingleMasonry(thisGallery);
});
$(window).resize(function(){
var size = thisGallery.find('.edgtf-single-masonry-grid-sizer').width();
edgtfPortfolioSingleResizeMasonry(size,thisGallery);
edgtfInitSingleMasonry(thisGallery);
});
});
}
}
function edgtfInitSingleMasonry(container){
container.animate({opacity: 1});
container.isotope({
layoutMode: 'packery',
itemSelector: '.edgtf-portfolio-single-media',
packery: {
columnWidth: '.edgtf-single-masonry-grid-sizer'
}
});
}
function edgtfPortfolioSingleResizeMasonry(size,container){
var defaultMasonryItem = container.find('.edgtf-default-masonry-item');
var largeWidthMasonryItem = container.find('.edgtf-large-width-masonry-item');
var largeHeightMasonryItem = container.find('.edgtf-large-height-masonry-item');
var largeWidthHeightMasonryItem = container.find('.edgtf-large-width-height-masonry-item');
defaultMasonryItem.css('height', size);
largeHeightMasonryItem.css('height', Math.round(2*size));
if(edgtf.windowWidth > 600){
largeWidthHeightMasonryItem.css('height', Math.round(2*size));
largeWidthMasonryItem.css('height', size);
}else{
largeWidthHeightMasonryItem.css('height', size);
largeWidthMasonryItem.css('height', Math.round(size));
largeHeightMasonryItem.css('height', Math.round(size));
}
}
})(jQuery);