first
This commit is contained in:
132
wp-content/plugins/slider-bws/js/owl.carousel/owl.autoheight.js
Normal file
132
wp-content/plugins/slider-bws/js/owl.carousel/owl.autoheight.js
Normal file
@ -0,0 +1,132 @@
|
||||
/**
|
||||
* AutoHeight Plugin
|
||||
* @version 2.3.4
|
||||
* @author Bartosz Wojciechowski
|
||||
* @author David Deutsch
|
||||
* @license The MIT License (MIT)
|
||||
*/
|
||||
;(function($, window, document, undefined) {
|
||||
|
||||
/**
|
||||
* Creates the auto height plugin.
|
||||
* @class The Auto Height Plugin
|
||||
* @param {Owl} carousel - The Owl Carousel
|
||||
*/
|
||||
var AutoHeight = function(carousel) {
|
||||
/**
|
||||
* Reference to the core.
|
||||
* @protected
|
||||
* @type {Owl}
|
||||
*/
|
||||
this._core = carousel;
|
||||
|
||||
this._previousHeight = null;
|
||||
|
||||
/**
|
||||
* All event handlers.
|
||||
* @protected
|
||||
* @type {Object}
|
||||
*/
|
||||
this._handlers = {
|
||||
'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) {
|
||||
if (e.namespace && this._core.settings.autoHeight) {
|
||||
this.update();
|
||||
}
|
||||
}, this),
|
||||
'changed.owl.carousel': $.proxy(function(e) {
|
||||
if (e.namespace && this._core.settings.autoHeight && e.property.name === 'position'){
|
||||
this.update();
|
||||
}
|
||||
}, this),
|
||||
'loaded.owl.lazy': $.proxy(function(e) {
|
||||
if (e.namespace && this._core.settings.autoHeight
|
||||
&& e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {
|
||||
this.update();
|
||||
}
|
||||
}, this)
|
||||
};
|
||||
|
||||
// set default options
|
||||
this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);
|
||||
|
||||
// register event handlers
|
||||
this._core.$element.on(this._handlers);
|
||||
this._intervalId = null;
|
||||
var refThis = this;
|
||||
|
||||
// These changes have been taken from a PR by gavrochelegnou proposed in #1575
|
||||
// and have been made compatible with the latest jQuery version
|
||||
$(window).on('load', function() {
|
||||
if (refThis._core.settings.autoHeight) {
|
||||
refThis.update();
|
||||
}
|
||||
});
|
||||
|
||||
// Autoresize the height of the carousel when window is resized
|
||||
// When carousel has images, the height is dependent on the width
|
||||
// and should also change on resize
|
||||
$(window).resize(function() {
|
||||
if (refThis._core.settings.autoHeight) {
|
||||
if (refThis._intervalId != null) {
|
||||
clearTimeout(refThis._intervalId);
|
||||
}
|
||||
|
||||
refThis._intervalId = setTimeout(function() {
|
||||
refThis.update();
|
||||
}, 250);
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Default options.
|
||||
* @public
|
||||
*/
|
||||
AutoHeight.Defaults = {
|
||||
autoHeight: false,
|
||||
autoHeightClass: 'owl-height'
|
||||
};
|
||||
|
||||
/**
|
||||
* Updates the view.
|
||||
*/
|
||||
AutoHeight.prototype.update = function() {
|
||||
var start = this._core._current,
|
||||
end = start + this._core.settings.items,
|
||||
lazyLoadEnabled = this._core.settings.lazyLoad,
|
||||
visible = this._core.$stage.children().toArray().slice(start, end),
|
||||
heights = [],
|
||||
maxheight = 0;
|
||||
|
||||
$.each(visible, function(index, item) {
|
||||
heights.push($(item).height());
|
||||
});
|
||||
|
||||
maxheight = Math.max.apply(null, heights);
|
||||
|
||||
if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) {
|
||||
maxheight = this._previousHeight;
|
||||
}
|
||||
|
||||
this._previousHeight = maxheight;
|
||||
|
||||
this._core.$stage.parent()
|
||||
.height(maxheight)
|
||||
.addClass(this._core.settings.autoHeightClass);
|
||||
};
|
||||
|
||||
AutoHeight.prototype.destroy = function() {
|
||||
var handler, property;
|
||||
|
||||
for (handler in this._handlers) {
|
||||
this._core.$element.off(handler, this._handlers[handler]);
|
||||
}
|
||||
for (property in Object.getOwnPropertyNames(this)) {
|
||||
typeof this[property] !== 'function' && (this[property] = null);
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;
|
||||
|
||||
})(window.Zepto || window.jQuery, window, document);
|
Reference in New Issue
Block a user