You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
249 lines
7.9 KiB
JavaScript
249 lines
7.9 KiB
JavaScript
/*! Respond.js v1.4.2: min/max-width media query polyfill
|
|
* Copyright 2014 Scott Jehl
|
|
* Licensed under MIT
|
|
* http://j.mp/respondjs */
|
|
|
|
!(function(a) {
|
|
"use strict";
|
|
a.matchMedia =
|
|
a.matchMedia ||
|
|
(function(a) {
|
|
var b,
|
|
c = a.documentElement,
|
|
d = c.firstElementChild || c.firstChild,
|
|
e = a.createElement("body"),
|
|
f = a.createElement("div");
|
|
return (
|
|
(f.id = "mq-test-1"),
|
|
(f.style.cssText = "position:absolute;top:-100em"),
|
|
(e.style.background = "none"),
|
|
e.appendChild(f),
|
|
function(a) {
|
|
return (
|
|
(f.innerHTML =
|
|
'­<style media="' +
|
|
a +
|
|
'"> #mq-test-1 { width: 42px; }</style>'),
|
|
c.insertBefore(e, d),
|
|
(b = 42 === f.offsetWidth),
|
|
c.removeChild(e),
|
|
{ matches: b, media: a }
|
|
);
|
|
}
|
|
);
|
|
})(a.document);
|
|
})(this),
|
|
(function(a) {
|
|
"use strict";
|
|
function b() {
|
|
v(!0);
|
|
}
|
|
var c = {};
|
|
(a.respond = c), (c.update = function() {});
|
|
var d = [],
|
|
e = (function() {
|
|
var b = !1;
|
|
try {
|
|
b = new a.XMLHttpRequest();
|
|
} catch (c) {
|
|
b = new a.ActiveXObject("Microsoft.XMLHTTP");
|
|
}
|
|
return function() {
|
|
return b;
|
|
};
|
|
})(),
|
|
f = function(a, b) {
|
|
var c = e();
|
|
c &&
|
|
(c.open("GET", a, !0),
|
|
(c.onreadystatechange = function() {
|
|
4 !== c.readyState ||
|
|
(200 !== c.status && 304 !== c.status) ||
|
|
b(c.responseText);
|
|
}),
|
|
4 !== c.readyState && c.send(null));
|
|
},
|
|
g = function(a) {
|
|
return a.replace(c.regex.minmaxwh, "").match(c.regex.other);
|
|
};
|
|
if (
|
|
((c.ajax = f),
|
|
(c.queue = d),
|
|
(c.unsupportedmq = g),
|
|
(c.regex = {
|
|
media: /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,
|
|
keyframes: /@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,
|
|
comments: /\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,
|
|
urls: /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,
|
|
findStyles: /@media *([^\{]+)\{([\S\s]+?)$/,
|
|
only: /(only\s+)?([a-zA-Z]+)\s?/,
|
|
minw: /\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,
|
|
maxw: /\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,
|
|
minmaxwh: /\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,
|
|
other: /\([^\)]*\)/g
|
|
}),
|
|
(c.mediaQueriesSupported =
|
|
a.matchMedia &&
|
|
null !== a.matchMedia("only all") &&
|
|
a.matchMedia("only all").matches),
|
|
!c.mediaQueriesSupported)
|
|
) {
|
|
var h,
|
|
i,
|
|
j,
|
|
k = a.document,
|
|
l = k.documentElement,
|
|
m = [],
|
|
n = [],
|
|
o = [],
|
|
p = {},
|
|
q = 30,
|
|
r = k.getElementsByTagName("head")[0] || l,
|
|
s = k.getElementsByTagName("base")[0],
|
|
t = r.getElementsByTagName("link"),
|
|
u = function() {
|
|
var a,
|
|
b = k.createElement("div"),
|
|
c = k.body,
|
|
d = l.style.fontSize,
|
|
e = c && c.style.fontSize,
|
|
f = !1;
|
|
return (
|
|
(b.style.cssText = "position:absolute;font-size:1em;width:1em"),
|
|
c ||
|
|
((c = f = k.createElement("body")),
|
|
(c.style.background = "none")),
|
|
(l.style.fontSize = "100%"),
|
|
(c.style.fontSize = "100%"),
|
|
c.appendChild(b),
|
|
f && l.insertBefore(c, l.firstChild),
|
|
(a = b.offsetWidth),
|
|
f ? l.removeChild(c) : c.removeChild(b),
|
|
(l.style.fontSize = d),
|
|
e && (c.style.fontSize = e),
|
|
(a = j = parseFloat(a))
|
|
);
|
|
},
|
|
v = function(b) {
|
|
var c = "clientWidth",
|
|
d = l[c],
|
|
e = ("CSS1Compat" === k.compatMode && d) || k.body[c] || d,
|
|
f = {},
|
|
g = t[t.length - 1],
|
|
p = new Date().getTime();
|
|
if (b && h && q > p - h)
|
|
return a.clearTimeout(i), (i = a.setTimeout(v, q)), void 0;
|
|
h = p;
|
|
for (var s in m)
|
|
if (m.hasOwnProperty(s)) {
|
|
var w = m[s],
|
|
x = w.minw,
|
|
y = w.maxw,
|
|
z = null === x,
|
|
A = null === y,
|
|
B = "em";
|
|
x && (x = parseFloat(x) * (x.indexOf(B) > -1 ? j || u() : 1)),
|
|
y && (y = parseFloat(y) * (y.indexOf(B) > -1 ? j || u() : 1)),
|
|
(w.hasquery &&
|
|
((z && A) || !(z || e >= x) || !(A || y >= e))) ||
|
|
(f[w.media] || (f[w.media] = []),
|
|
f[w.media].push(n[w.rules]));
|
|
}
|
|
for (var C in o)
|
|
o.hasOwnProperty(C) &&
|
|
o[C] &&
|
|
o[C].parentNode === r &&
|
|
r.removeChild(o[C]);
|
|
o.length = 0;
|
|
for (var D in f)
|
|
if (f.hasOwnProperty(D)) {
|
|
var E = k.createElement("style"),
|
|
F = f[D].join("\n");
|
|
(E.type = "text/css"),
|
|
(E.media = D),
|
|
r.insertBefore(E, g.nextSibling),
|
|
E.styleSheet
|
|
? (E.styleSheet.cssText = F)
|
|
: E.appendChild(k.createTextNode(F)),
|
|
o.push(E);
|
|
}
|
|
},
|
|
w = function(a, b, d) {
|
|
var e = a
|
|
.replace(c.regex.comments, "")
|
|
.replace(c.regex.keyframes, "")
|
|
.match(c.regex.media),
|
|
f = (e && e.length) || 0;
|
|
b = b.substring(0, b.lastIndexOf("/"));
|
|
var h = function(a) {
|
|
return a.replace(c.regex.urls, "$1" + b + "$2$3");
|
|
},
|
|
i = !f && d;
|
|
b.length && (b += "/"), i && (f = 1);
|
|
for (var j = 0; f > j; j++) {
|
|
var k, l, o, p;
|
|
i
|
|
? ((k = d), n.push(h(a)))
|
|
: ((k = e[j].match(c.regex.findStyles) && RegExp.$1),
|
|
n.push(RegExp.$2 && h(RegExp.$2))),
|
|
(o = k.split(",")),
|
|
(p = o.length);
|
|
for (var q = 0; p > q; q++)
|
|
(l = o[q]),
|
|
g(l) ||
|
|
m.push({
|
|
media:
|
|
(l.split("(")[0].match(c.regex.only) && RegExp.$2) ||
|
|
"all",
|
|
rules: n.length - 1,
|
|
hasquery: l.indexOf("(") > -1,
|
|
minw:
|
|
l.match(c.regex.minw) &&
|
|
parseFloat(RegExp.$1) + (RegExp.$2 || ""),
|
|
maxw:
|
|
l.match(c.regex.maxw) &&
|
|
parseFloat(RegExp.$1) + (RegExp.$2 || "")
|
|
});
|
|
}
|
|
v();
|
|
},
|
|
x = function() {
|
|
if (d.length) {
|
|
var b = d.shift();
|
|
f(b.href, function(c) {
|
|
w(c, b.href, b.media),
|
|
(p[b.href] = !0),
|
|
a.setTimeout(function() {
|
|
x();
|
|
}, 0);
|
|
});
|
|
}
|
|
},
|
|
y = function() {
|
|
for (var b = 0; b < t.length; b++) {
|
|
var c = t[b],
|
|
e = c.href,
|
|
f = c.media,
|
|
g = c.rel && "stylesheet" === c.rel.toLowerCase();
|
|
e &&
|
|
g &&
|
|
!p[e] &&
|
|
(c.styleSheet && c.styleSheet.rawCssText
|
|
? (w(c.styleSheet.rawCssText, e, f), (p[e] = !0))
|
|
: ((!/^([a-zA-Z:]*\/\/)/.test(e) && !s) ||
|
|
e.replace(RegExp.$1, "").split("/")[0] ===
|
|
a.location.host) &&
|
|
("//" === e.substring(0, 2) && (e = a.location.protocol + e),
|
|
d.push({ href: e, media: f })));
|
|
}
|
|
x();
|
|
};
|
|
y(),
|
|
(c.update = y),
|
|
(c.getEmValue = u),
|
|
a.addEventListener
|
|
? a.addEventListener("resize", b, !1)
|
|
: a.attachEvent && a.attachEvent("onresize", b);
|
|
}
|
|
})(this);
|