/*! UIkit 2.26.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */ (function(UI){ "use strict"; UI.component('cover', { defaults: { automute : true }, boot: function() { // auto init UI.ready(function(context) { UI.$("[data-uk-cover]", context).each(function(){ var ele = UI.$(this); if(!ele.data("cover")) { var plugin = UI.cover(ele, UI.Utils.options(ele.attr("data-uk-cover"))); } }); }); }, init: function() { this.parent = this.element.parent(); UI.$win.on('load resize orientationchange', UI.Utils.debounce(function(){ this.check(); }.bind(this), 100)); this.on("display.uk.check", function(e) { if(this.element.is(":visible")) this.check(); }.bind(this)); this.check(); if (this.element.is('iframe') && this.options.automute) { var src = this.element.attr('src'); this.element.attr('src', '').on('load', function(){ this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}', '*'); }).attr('src', [src, (src.indexOf('?') > -1 ? '&':'?'), 'enablejsapi=1&api=1'].join('')); } }, check: function() { this.element.css({ 'width' : '', 'height' : '' }); this.dimension = {w: this.element.width(), h: this.element.height()}; if (this.element.attr('width') && !isNaN(this.element.attr('width'))) { this.dimension.w = this.element.attr('width'); } if (this.element.attr('height') && !isNaN(this.element.attr('height'))) { this.dimension.h = this.element.attr('height'); } this.ratio = this.dimension.w / this.dimension.h; var w = this.parent.width(), h = this.parent.height(), width, height; // if element height < parent height (gap underneath) if ((w / this.ratio) < h) { width = Math.ceil(h * this.ratio); height = h; // element width < parent width (gap to right) } else { width = w; height = Math.ceil(w / this.ratio); } this.element.css({ 'width' : width, 'height' : height }); } }); })(UIkit);