use $a->data instead of $a->page for $content and ad another library for use with webpages - foundation
This commit is contained in:
104
library/foundation/js/foundation/foundation.equalizer.js
vendored
Normal file
104
library/foundation/js/foundation/foundation.equalizer.js
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
;(function ($, window, document, undefined) {
|
||||
'use strict';
|
||||
|
||||
Foundation.libs.equalizer = {
|
||||
name : 'equalizer',
|
||||
|
||||
version : '5.5.2',
|
||||
|
||||
settings : {
|
||||
use_tallest : true,
|
||||
before_height_change : $.noop,
|
||||
after_height_change : $.noop,
|
||||
equalize_on_stack : false,
|
||||
act_on_hidden_el: false
|
||||
},
|
||||
|
||||
init : function (scope, method, options) {
|
||||
Foundation.inherit(this, 'image_loaded');
|
||||
this.bindings(method, options);
|
||||
this.reflow();
|
||||
},
|
||||
|
||||
events : function () {
|
||||
this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
|
||||
this.reflow();
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
equalize : function (equalizer) {
|
||||
var isStacked = false,
|
||||
group = equalizer.data('equalizer'),
|
||||
settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
|
||||
vals,
|
||||
firstTopOffset;
|
||||
|
||||
if (settings.act_on_hidden_el) {
|
||||
vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
|
||||
}
|
||||
else {
|
||||
vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
|
||||
}
|
||||
|
||||
if (vals.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
settings.before_height_change();
|
||||
equalizer.trigger('before-height-change.fndth.equalizer');
|
||||
vals.height('inherit');
|
||||
|
||||
if (settings.equalize_on_stack === false) {
|
||||
firstTopOffset = vals.first().offset().top;
|
||||
vals.each(function () {
|
||||
if ($(this).offset().top !== firstTopOffset) {
|
||||
isStacked = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
if (isStacked) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
|
||||
|
||||
if (settings.use_tallest) {
|
||||
var max = Math.max.apply(null, heights);
|
||||
vals.css('height', max);
|
||||
} else {
|
||||
var min = Math.min.apply(null, heights);
|
||||
vals.css('height', min);
|
||||
}
|
||||
|
||||
settings.after_height_change();
|
||||
equalizer.trigger('after-height-change.fndtn.equalizer');
|
||||
},
|
||||
|
||||
reflow : function () {
|
||||
var self = this;
|
||||
|
||||
this.S('[' + this.attr_name() + ']', this.scope).each(function () {
|
||||
var $eq_target = $(this),
|
||||
media_query = $eq_target.data('equalizer-mq'),
|
||||
ignore_media_query = true;
|
||||
|
||||
if (media_query) {
|
||||
media_query = 'is_' + media_query.replace(/-/g, '_');
|
||||
if (Foundation.utils.hasOwnProperty(media_query)) {
|
||||
ignore_media_query = false;
|
||||
}
|
||||
}
|
||||
|
||||
self.image_loaded(self.S('img', this), function () {
|
||||
if (ignore_media_query || Foundation.utils[media_query]()) {
|
||||
self.equalize($eq_target)
|
||||
} else {
|
||||
var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
|
||||
vals.css('height', 'auto');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
})(jQuery, window, window.document);
|
||||
Reference in New Issue
Block a user