96 lines
2.6 KiB
JavaScript
96 lines
2.6 KiB
JavaScript
/*! UIkit 2.25.0 | 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);
|