first commit
This commit is contained in:
95
public/js/modules/grid.js
Normal file
95
public/js/modules/grid.js
Normal file
@@ -0,0 +1,95 @@
|
||||
CNVS.Grid = function() {
|
||||
var __core = SEMICOLON.Core;
|
||||
|
||||
var _reLayout = function(el) {
|
||||
el.filter('.has-init-isotope').isotope('layout');
|
||||
};
|
||||
|
||||
return {
|
||||
init: function(selector) {
|
||||
if( __core.getSelector(selector, false, false).length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
__core.loadJS({ file: 'plugins.isotope.js', id: 'canvas-isotope-js', jsFolder: true });
|
||||
|
||||
__core.isFuncTrue( function() {
|
||||
return typeof jQuery !== 'undefined' && typeof Isotope !== 'undefined';
|
||||
}).then( function(cond) {
|
||||
if( !cond ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
__core.initFunction({ class: 'has-plugin-isotope', event: 'pluginIsotopeReady' });
|
||||
|
||||
selector = __core.getSelector( selector );
|
||||
if( selector.length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
selector.each( function() {
|
||||
var element = jQuery(this),
|
||||
elTransition = element.attr('data-transition') || '0.65s',
|
||||
elLayoutMode = element.attr('data-layout') || 'masonry',
|
||||
elStagger = element.attr('data-stagger') || 0,
|
||||
elBase = element.attr('data-basewidth') || '.portfolio-item:not(.wide):eq(0)',
|
||||
elOriginLeft = true,
|
||||
elGrid;
|
||||
|
||||
_reLayout(element);
|
||||
|
||||
if( __core.getVars.isRTL ) {
|
||||
elOriginLeft = false;
|
||||
}
|
||||
|
||||
if( element.hasClass('portfolio') || element.hasClass('post-timeline') ){
|
||||
elGrid = element.filter(':not(.has-init-isotope)').isotope({
|
||||
layoutMode: elLayoutMode,
|
||||
isOriginLeft: elOriginLeft,
|
||||
transitionDuration: elTransition,
|
||||
stagger: Number( elStagger ),
|
||||
percentPosition: true,
|
||||
masonry: {
|
||||
columnWidth: element.find( elBase )[0]
|
||||
}
|
||||
});
|
||||
} else {
|
||||
elGrid = element.filter(':not(.has-init-isotope)').isotope({
|
||||
layoutMode: elLayoutMode,
|
||||
isOriginLeft: elOriginLeft,
|
||||
transitionDuration: elTransition,
|
||||
stagger: Number( elStagger ),
|
||||
percentPosition: true,
|
||||
});
|
||||
}
|
||||
|
||||
if( element.data('isotope') ) {
|
||||
element.addClass('has-init-isotope');
|
||||
}
|
||||
|
||||
var int = setInterval( function() {
|
||||
if( element.find('.lazy.lazy-loaded').length == element.find('.lazy').length ) {
|
||||
setTimeout( function() {
|
||||
_reLayout(element);
|
||||
}, 666);
|
||||
|
||||
clearInterval(int);
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
window.addEventListener( 'lazyLoadLoaded', function() {
|
||||
_reLayout(element);
|
||||
});
|
||||
|
||||
window.addEventListener( 'load', function() {
|
||||
_reLayout(element);
|
||||
});
|
||||
|
||||
__core.getVars.resizers.isotope = function() {
|
||||
_reLayout(element);
|
||||
};
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
}();
|
||||
Reference in New Issue
Block a user