From c94fb32c7a3c28b18a27460aa2447eeec1fac1de Mon Sep 17 00:00:00 2001 From: Pascal Szewczyk Date: Mon, 18 Jul 2016 23:23:54 +0200 Subject: uikit added --- js/core/grid.js | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100755 js/core/grid.js (limited to 'js/core/grid.js') diff --git a/js/core/grid.js b/js/core/grid.js new file mode 100755 index 0000000..2552f93 --- /dev/null +++ b/js/core/grid.js @@ -0,0 +1,117 @@ +/*! UIkit 2.26.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */ +(function(UI) { + + "use strict"; + + var grids = []; + + UI.component('gridMatchHeight', { + + defaults: { + "target" : false, + "row" : true, + "ignorestacked" : false, + "observe" : false + }, + + boot: function() { + + // init code + UI.ready(function(context) { + + UI.$("[data-uk-grid-match]", context).each(function() { + var grid = UI.$(this), obj; + + if (!grid.data("gridMatchHeight")) { + obj = UI.gridMatchHeight(grid, UI.Utils.options(grid.attr("data-uk-grid-match"))); + } + }); + }); + }, + + 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() { + if ($this.element.is(":visible")) $this.match(); + }; + + UI.$(function() { fn(); }); + + return UI.Utils.debounce(fn, 50); + })()); + + if (this.options.observe) { + + UI.domObserve(this.element, function(e) { + if ($this.element.is(":visible")) $this.match(); + }); + } + + this.on("display.uk.check", function(e) { + if(this.element.is(":visible")) this.match(); + }.bind(this)); + + grids.push(this); + }, + + match: function() { + + var firstvisible = this.columns.filter(":visible:first"); + + 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: { + cls : 'uk-grid-margin', + rowfirst : 'uk-row-first' + }, + + boot: function() { + + // init code + UI.ready(function(context) { + + UI.$("[data-uk-grid-margin]", context).each(function() { + var grid = UI.$(this), obj; + + if (!grid.data("gridMargin")) { + obj = UI.gridMargin(grid, UI.Utils.options(grid.attr("data-uk-grid-margin"))); + } + }); + }); + }, + + init: function() { + + var stackMargin = UI.stackMargin(this.element, this.options); + } + }); + +})(UIkit); -- cgit v1.2.3