| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- (function flexible(window, document) {
- var docEl = document.documentElement
- var dpr = window.devicePixelRatio || 1
- // adjust body font size
- function setBodyFontSize() {
- if (document.body) {
- document.body.style.fontSize = (12 * dpr) + 'px'
- } else {
- document.addEventListener('DOMContentLoaded', setBodyFontSize)
- }
- }
- // setBodyFontSize();
- // set 1rem = viewWidth / 10
- function setRemUnit() {
- var width = docEl.clientWidth;
- /*if (width / dpr > 540) {
- width = 540 * dpr;
- }*/
- var rem = width / 10;
- docEl.style.fontSize = rem + 'px';
- }
- setRemUnit()
- // reset rem unit on page resize
- window.addEventListener('resize', setRemUnit)
- window.addEventListener('pageshow', function (e) {
- if (e.persisted) {
- setRemUnit()
- }
- })
- // detect 0.5px supports
- if (dpr >= 2) {
- var fakeBody = document.createElement('body')
- var testElement = document.createElement('div')
- testElement.style.border = '.5px solid transparent'
- fakeBody.appendChild(testElement)
- docEl.appendChild(fakeBody)
- if (testElement.offsetHeight === 1) {
- docEl.classList.add('hairlines')
- }
- docEl.removeChild(fakeBody)
- }
- // 超大屏手机适配
- if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
- handleFontSize();
- } else {
- if (document.addEventListener) {
- document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
- } else if (document.attachEvent) {
- //IE浏览器,非W3C规范
- document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
- }
- }
- function handleFontSize() {
- // 设置网页字体为默认大小
- WeixinJSBridge.invoke('setFontSizeCallback', {
- 'fontSize': 0
- });
- // 重写设置网页字体大小的事件
- WeixinJSBridge.on('menu:setfont', function () {
- WeixinJSBridge.invoke('setFontSizeCallback', {
- 'fontSize': 0
- });
- });
- }
- }(window, document))
|