Files
2025-06-25 15:43:30 +02:00

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);
});
});