Component-Builder-fork/media/uikit-v2/js/core/grid.js

118 lines
3.0 KiB
JavaScript
Raw Normal View History

2019-04-22 13:31:39 +00:00
/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
2016-01-30 20:28:43 +00:00
(function(UI) {
"use strict";
var grids = [];
UI.component('gridMatchHeight', {
defaults: {
2017-11-12 00:33:10 +00:00
target : false,
row : true,
ignorestacked : false,
observe : false
2016-01-30 20:28:43 +00:00
},
boot: function() {
// init code
UI.ready(function(context) {
2017-11-12 00:33:10 +00:00
UI.$('[data-uk-grid-match]', context).each(function() {
2016-01-30 20:28:43 +00:00
var grid = UI.$(this), obj;
2017-11-12 00:33:10 +00:00
if (!grid.data('gridMatchHeight')) {
obj = UI.gridMatchHeight(grid, UI.Utils.options(grid.attr('data-uk-grid-match')));
2016-01-30 20:28:43 +00:00
}
});
});
},
init: function() {
var $this = this;
this.columns = this.element.children();
this.elements = this.options.target ? this.find(this.options.target) : this.columns;
if (!this.columns.length) return;
UI.$win.on('load resize orientationchange', (function() {
var fn = function() {
2017-11-12 00:33:10 +00:00
if ($this.element.is(':visible')) $this.match();
2016-01-30 20:28:43 +00:00
};
UI.$(function() { fn(); });
return UI.Utils.debounce(fn, 50);
})());
2017-11-12 00:33:10 +00:00
if (this.options.observe) {
UI.domObserve(this.element, function(e) {
if ($this.element.is(':visible')) $this.match();
});
}
2016-01-30 20:28:43 +00:00
2017-11-12 00:33:10 +00:00
this.on('display.uk.check', function(e) {
if(this.element.is(':visible')) this.match();
2016-01-30 20:28:43 +00:00
}.bind(this));
grids.push(this);
},
match: function() {
2017-11-12 00:33:10 +00:00
var firstvisible = this.columns.filter(':visible:first');
2016-01-30 20:28:43 +00:00
if (!firstvisible.length) return;
var stacked = Math.ceil(100 * parseFloat(firstvisible.css('width')) / parseFloat(firstvisible.parent().css('width'))) >= 100;
if (stacked && !this.options.ignorestacked) {
this.revert();
} else {
UI.Utils.matchHeights(this.elements, this.options);
}
return this;
},
revert: function() {
this.elements.css('min-height', '');
return this;
}
});
UI.component('gridMargin', {
defaults: {
2016-03-19 01:51:35 +00:00
cls : 'uk-grid-margin',
rowfirst : 'uk-row-first'
2016-01-30 20:28:43 +00:00
},
boot: function() {
// init code
UI.ready(function(context) {
2017-11-12 00:33:10 +00:00
UI.$('[data-uk-grid-margin]', context).each(function() {
2016-01-30 20:28:43 +00:00
var grid = UI.$(this), obj;
2017-11-12 00:33:10 +00:00
if (!grid.data('gridMargin')) {
obj = UI.gridMargin(grid, UI.Utils.options(grid.attr('data-uk-grid-margin')));
2016-01-30 20:28:43 +00:00
}
});
});
},
init: function() {
var stackMargin = UI.stackMargin(this.element, this.options);
}
});
2017-11-12 00:33:10 +00:00
})(UIkit2);