!(function () {
var docElem = document.documentElement,
metaElem = document.querySelector('meta[name="viewport"]'),
dpr = window.devicePixelRatio || 1,
// 灏嗛〉闈㈠垎涓?0鍧
blocks = 10,
// 闇€瑕侀檺鍒剁殑鏈€灏忓搴
defaultMinWidth = 300,
// 闇€瑕侀檺鍒剁殑鏈€澶у搴
defaultMaxWidth = 640,
// 璁$畻鐨勫熀鍑嗗€
calcMaxWidth = 9999999;
if (!metaElem) {
metaElem = initMetaViewport();
}
if (metaElem.getAttribute('data-content-max') !== null) {
calcMaxWidth = defaultMaxWidth;
}
// 纭繚meta[name="viewport"]瀛樺湪
function initMetaViewport() {
var meta = document.createElement('meta');
meta.setAttribute('name', 'viewport');
meta.setAttribute('content', 'width=device-width,initial-scale=1,user-scalable=no');
document.head.appendChild(meta);
return meta;
}
// 澶ч儴鍒哾pr涓?浠ヤ笅鐨勫畨鍗撴満鍨嬩笉璇嗗埆scale锛岄渶璁剧疆涓嶇缉鏀
if (navigator.appVersion.match(/android/gi) && dpr < 2) {
dpr = 1;
console.log(dpr);
}
setScale(dpr);
// 浼佷笟QQ璁剧疆浜唖cale鍚庯紝涓嶈兘瀹屽叏璇嗗埆scale锛堟鏃禼lientWidth鏈敹鍒扮缉鏀剧殑褰卞搷鑰岀炕鍊嶏級锛岄渶璁剧疆涓嶇缉鏀
if (navigator.appVersion.match(/qq\//gi) && docElem.clientWidth <= 360) {
dpr = 1;
setScale(dpr);
}
docElem.setAttribute('data-dpr', dpr);
// 璁剧疆缂╂斁
function setScale(dpr) {
var sale = (1 / dpr);
//$('.log').append('缂╂斁澶у皬=>' + sale + '
');
console.log(sale);
metaElem.setAttribute('content', 'initial-scale=' + sale + ',maximum-scale=' + sale + ',minimum-scale=' + sale + ',user-scalable=no');
}
// 璁剧疆docElem瀛椾綋澶у皬
function setFontSize() {
//setScale(dpr);
var clientWidth = docElem.clientWidth;
console.log(clientWidth);
$('.log').append('榛樿瀹藉害=>' + clientWidth + '
');
clientWidth = Math.max(clientWidth, defaultMinWidth * dpr);
$('.log').append('dpr瀹藉害=>' + clientWidth + '
');
// 璋冩暣璁$畻鍩哄噯鍊
if (calcMaxWidth === defaultMaxWidth) {
clientWidth = Math.min(clientWidth, defaultMaxWidth * dpr);
}
$('.log').append('鏈€缁堝搴?>' + clientWidth + '
');
var fontsize = clientWidth / blocks + 'px';
$('.log').append('瀛椾綋澶у皬=>' + fontsize + '
');
$('.log').append('瀛椾綋澶у皬=>' + metaElem.getAttribute('content') + '
');
console.log(clientWidth);
docElem.style.fontSize = fontsize;
}
setFontSize();
if (navigator.appVersion.match(/uc\//gi)) {
$(document).ready(function () {
setScale(dpr);
});
}
window.addEventListener(window.orientationchange ? 'orientationchange' : 'resize', setFontSize, false);
})();