204 lines
5.6 KiB
JavaScript
204 lines
5.6 KiB
JavaScript
/*
|
|
* jquery-match-height 0.7.2 by @liabru
|
|
* http://brm.io/jquery-match-height/
|
|
* License MIT
|
|
*/
|
|
!(function (t) {
|
|
"use strict";
|
|
"function" == typeof define && define.amd
|
|
? define(["jquery"], t)
|
|
: "undefined" != typeof module && module.exports
|
|
? (module.exports = t(require("jquery")))
|
|
: t(jQuery);
|
|
})(function (t) {
|
|
var e = -1,
|
|
o = -1,
|
|
n = function (t) {
|
|
return parseFloat(t) || 0;
|
|
},
|
|
a = function (e) {
|
|
var o = 1,
|
|
a = t(e),
|
|
i = null,
|
|
r = [];
|
|
return (
|
|
a.each(function () {
|
|
var e = t(this),
|
|
a = e.offset().top - n(e.css("margin-top")),
|
|
s = r.length > 0 ? r[r.length - 1] : null;
|
|
null === s
|
|
? r.push(e)
|
|
: Math.floor(Math.abs(i - a)) <= o
|
|
? (r[r.length - 1] = s.add(e))
|
|
: r.push(e),
|
|
(i = a);
|
|
}),
|
|
r
|
|
);
|
|
},
|
|
i = function (e) {
|
|
var o = {
|
|
byRow: !0,
|
|
property: "height",
|
|
target: null,
|
|
remove: !1,
|
|
};
|
|
return "object" == typeof e
|
|
? t.extend(o, e)
|
|
: ("boolean" == typeof e
|
|
? (o.byRow = e)
|
|
: "remove" === e && (o.remove = !0),
|
|
o);
|
|
},
|
|
r = (t.fn.matchHeight = function (e) {
|
|
var o = i(e);
|
|
if (o.remove) {
|
|
var n = this;
|
|
return (
|
|
this.css(o.property, ""),
|
|
t.each(r._groups, function (t, e) {
|
|
e.elements = e.elements.not(n);
|
|
}),
|
|
this
|
|
);
|
|
}
|
|
return this.length <= 1 && !o.target
|
|
? this
|
|
: (r._groups.push({ elements: this, options: o }),
|
|
r._apply(this, o),
|
|
this);
|
|
});
|
|
(r.version = "0.7.2"),
|
|
(r._groups = []),
|
|
(r._throttle = 80),
|
|
(r._maintainScroll = !1),
|
|
(r._beforeUpdate = null),
|
|
(r._afterUpdate = null),
|
|
(r._rows = a),
|
|
(r._parse = n),
|
|
(r._parseOptions = i),
|
|
(r._apply = function (e, o) {
|
|
var s = i(o),
|
|
h = t(e),
|
|
l = [h],
|
|
c = t(window).scrollTop(),
|
|
p = t("html").outerHeight(!0),
|
|
u = h.parents().filter(":hidden");
|
|
return (
|
|
u.each(function () {
|
|
var e = t(this);
|
|
e.data("style-cache", e.attr("style"));
|
|
}),
|
|
u.css("display", "block"),
|
|
s.byRow &&
|
|
!s.target &&
|
|
(h.each(function () {
|
|
var e = t(this),
|
|
o = e.css("display");
|
|
"inline-block" !== o &&
|
|
"flex" !== o &&
|
|
"inline-flex" !== o &&
|
|
(o = "block"),
|
|
e.data("style-cache", e.attr("style")),
|
|
e.css({
|
|
display: o,
|
|
"padding-top": "0",
|
|
"padding-bottom": "0",
|
|
"margin-top": "0",
|
|
"margin-bottom": "0",
|
|
"border-top-width": "0",
|
|
"border-bottom-width": "0",
|
|
height: "100px",
|
|
overflow: "hidden",
|
|
});
|
|
}),
|
|
(l = a(h)),
|
|
h.each(function () {
|
|
var e = t(this);
|
|
e.attr("style", e.data("style-cache") || "");
|
|
})),
|
|
t.each(l, function (e, o) {
|
|
var a = t(o),
|
|
i = 0;
|
|
if (s.target) i = s.target.outerHeight(!1);
|
|
else {
|
|
if (s.byRow && a.length <= 1) return void a.css(s.property, "");
|
|
a.each(function () {
|
|
var e = t(this),
|
|
o = e.attr("style"),
|
|
n = e.css("display");
|
|
"inline-block" !== n &&
|
|
"flex" !== n &&
|
|
"inline-flex" !== n &&
|
|
(n = "block");
|
|
var a = {
|
|
display: n,
|
|
};
|
|
(a[s.property] = ""),
|
|
e.css(a),
|
|
e.outerHeight(!1) > i && (i = e.outerHeight(!1)),
|
|
o ? e.attr("style", o) : e.css("display", "");
|
|
});
|
|
}
|
|
a.each(function () {
|
|
var e = t(this),
|
|
o = 0;
|
|
(s.target && e.is(s.target)) ||
|
|
("border-box" !== e.css("box-sizing") &&
|
|
((o +=
|
|
n(e.css("border-top-width")) +
|
|
n(e.css("border-bottom-width"))),
|
|
(o += n(e.css("padding-top")) + n(e.css("padding-bottom")))),
|
|
e.css(s.property, i - o + "px"));
|
|
});
|
|
}),
|
|
u.each(function () {
|
|
var e = t(this);
|
|
e.attr("style", e.data("style-cache") || null);
|
|
}),
|
|
r._maintainScroll &&
|
|
t(window).scrollTop((c / p) * t("html").outerHeight(!0)),
|
|
this
|
|
);
|
|
}),
|
|
(r._applyDataApi = function () {
|
|
var e = {};
|
|
t("[data-match-height], [data-mh]").each(function () {
|
|
var o = t(this),
|
|
n = o.attr("data-mh") || o.attr("data-match-height");
|
|
n in e ? (e[n] = e[n].add(o)) : (e[n] = o);
|
|
}),
|
|
t.each(e, function () {
|
|
this.matchHeight(!0);
|
|
});
|
|
});
|
|
var s = function (e) {
|
|
r._beforeUpdate && r._beforeUpdate(e, r._groups),
|
|
t.each(r._groups, function () {
|
|
r._apply(this.elements, this.options);
|
|
}),
|
|
r._afterUpdate && r._afterUpdate(e, r._groups);
|
|
};
|
|
(r._update = function (n, a) {
|
|
if (a && "resize" === a.type) {
|
|
var i = t(window).width();
|
|
if (i === e) return;
|
|
e = i;
|
|
}
|
|
n
|
|
? o === -1 &&
|
|
(o = setTimeout(function () {
|
|
s(a), (o = -1);
|
|
}, r._throttle))
|
|
: s(a);
|
|
}),
|
|
t(r._applyDataApi);
|
|
var h = t.fn.on ? "on" : "bind";
|
|
t(window)[h]("load", function (t) {
|
|
r._update(!1, t);
|
|
}),
|
|
t(window)[h]("resize orientationchange", function (t) {
|
|
r._update(!0, t);
|
|
});
|
|
});
|