1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
!
function
(x) {
function
w() {
var
a = r.getBoundingClientRect().width;
a / v > 540 && (a = 540 * v), x.rem = a / 16, r.style.fontSize = x.rem +
"px"
}
var
v, u, t, s = x.document, r = s.documentElement, q = s.querySelector(‘meta[name=
"viewport"
]‘), p = s.querySelector(‘meta[name=
"flexible"
]‘);
if
(q) {
console.warn(
"将根据已有的meta标签来设置缩放比例"
);
var
o = q.getAttribute(
"content"
).match(/initial\-scale=([
"‘]?)([\d\.]+)\1?/);
o && (u = parseFloat(o[2]), v = parseInt(1 / u))
} else { if (p) { var o = p.getAttribute("
content
").match(/initial\-dpr=(["
‘]?)([\d\.]+)\1?/);
o && (v = parseFloat(o[2]), u = parseFloat((1 / v).toFixed(2)))
}
}
if
(!v && !u) {
var
n = (x.navigator.appVersion.match(/android/gi), x.navigator.appVersion.match(/iphone/gi)), v = x.devicePixelRatio;
v = n ? v >= 3 ? 3 : v >= 2 ? 2 : 1 : 1, u = 1 / v
}
if
(r.setAttribute(
"data-dpr"
, v), !q) {
if
(q = s.createElement(
"meta"
), q.setAttribute(
"name"
,
"viewport"
), q.setAttribute(
"content"
,
"initial-scale="
+ u +
", maximum-scale="
+ u +
", minimum-scale="
+ u +
", user-scalable=no"
), r.firstElementChild) {
r.firstElementChild.appendChild(q)
}
else
{
var
m = s.createElement(
"div"
);
m.appendChild(q), s.write(m.innerHTML)
}
}
x.dpr = v, x.addEventListener(
"resize"
,
function
() {
clearTimeout(t), t = setTimeout(w, 300)
}, !1), x.addEventListener(
"pageshow"
,
function
(b) {
b.persisted && (clearTimeout(t), t = setTimeout(w, 300))
}, !1),
"complete"
=== s.readyState ? s.body.style.fontSize = 12 * v +
"px"
: s.addEventListener(
"DOMContentLoaded"
,
function
() {
s.body.style.fontSize = 12 * v +
"px"
}, !1), w()
}(window);
本文转自 小旭依然 51CTO博客,原文链接:http://blog.51cto.com/xuyran/1787151
|