1 define(function (require, exports, module) { 2 exports.mobileUtilMethod = function () { 3 (function (e, t) { 4 function n() { 5 for (var e = navigator.userAgent, 6 t = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"], n = !0, i = 0; t.length > i; i++) if (e.indexOf(t[i]) > 0) { 7 n = !1; 8 break 9 } 10 return n 11 } 12 function i() { 13 var t = a.getBoundingClientRect().width; 14 n() && 2047 > t && (t = 640); 15 var i = t * 100 / w; 16 a.style.fontSize = i + "px", 17 d.rem = e.rem = i 18 } 19 var r, o = e.document, 20 a = o.documentElement, 21 s = o.querySelector('meta[name="viewport"]'), 22 c = o.querySelector('meta[name="flexible"]'), 23 l = 0, 24 u = 0, 25 d = t.flexible || (t.flexible = {}); 26 var w = o.querySelector('meta[name="W_design"]') ? o.querySelector('meta[name="W_design"]').getAttribute('content') : 640; 27 if (s) { 28 // console.warn("将根据已有的meta标签来设置缩放比例"); 29 var p = s.getAttribute("content").match(/initial\-scale=([\d\.]+)/); 30 p && (u = parseFloat(p[1]), l = parseInt(1 / u)) 31 } else if (c) { 32 var f = c.getAttribute("content"); 33 if (f) { 34 var h = f.match(/initial\-dpr=([\d\.]+)/), 35 m = f.match(/maximum\-dpr=([\d\.]+)/); 36 h && (l = parseFloat(h[1]), u = parseFloat((1 / l).toFixed(2))), 37 m && (l = parseFloat(m[1]), u = parseFloat((1 / l).toFixed(2))) 38 } 39 } 40 if (!l && !u) { 41 e.navigator.appVersion.match(/android/gi); 42 var g = e.navigator.appVersion.match(/iphone/gi); 43 e.navigator.appVersion.match(/ipad/gi); 44 var v = e.devicePixelRatio; 45 l = g ? v >= 3 && (!l || l >= 3) ? 3 : v >= 2 && (!l || l >= 2) ? 2 : 1 : 1, 46 u = 1 / l 47 } 48 if (a.setAttribute("data-dpr", l), !s) if (s = o.createElement("meta"), s.setAttribute("name", "viewport"), s.setAttribute("content", "initial-scale=" + u + ", maximum-scale=" + u + ", minimum-scale=" + u + ", user-scalable=no"), a.firstElementChild) a.firstElementChild.appendChild(s); 49 else { 50 var y = o.createElement("div"); 51 y.appendChild(s), 52 o.write(y.innerHTML) 53 } 54 e.addEventListener("resize", 55 function () { 56 clearTimeout(r), 57 r = setTimeout(i, 300) 58 }, !1), 59 e.addEventListener("pageshow", 60 function (e) { 61 e.persisted && (clearTimeout(r), r = setTimeout(i, 300)) 62 }, !1), 63 "complete" === o.readyState ? o.body.style.fontSize = 12 * l + "px" : o.addEventListener("DOMContentLoaded", 64 function () { 65 o.body.style.fontSize = 12 * l + "px" 66 }, !1), 67 i(), 68 d.dpr = e.dpr = l, 69 d.refreshRem = i, 70 d.rem2px = function (e) { 71 var t = parseFloat(e) * this.rem; 72 return "string" == typeof e && e.match(/rem$/) && (t += "px"), 73 t 74 }, 75 d.px2rem = function (e) { 76 var t = parseFloat(e) / this.rem; 77 return "string" == typeof e && e.match(/px$/) && (t += "rem"), 78 t 79 } 80 })(window, window.lib || (window.lib = {})); 81 } 82 })
移动端flex自适应方案。(px to rem)
猜你喜欢
转载自www.cnblogs.com/souleigh-hong/p/9054537.html
今日推荐
周排行