(function() { if (!-[1, ]) { return 0; }; var html = document.getelementsbytagname('html')[0]; var script = document.getelementsbytagname('script')[0]; //参数 var psd_w = script.getattribute('fu-psd'); var _min = script.getattribute('fu-min'); var _max = script.getattribute('fu-max'); var full = script.getattribute('fu-full'); //常量 var win = window; var doc = document; var dpr = window.devicepixelratio || 1; var screen = win.screen; //手机宽高比 短:高 var ratio = math.min(screen.width, screen.height) / math.max(screen.width, screen.height); //与freeui框架会师 win.freeui = win.freeui || {}; freeui['rem'] = _rem; function _rem(psd_w, _min, _max, full) { var win = window; //设计稿宽 var psd_w = number(psd_w) || 767; //手机实际物理像素宽 var win_w = html.getboundingclientrect().width; //短的width if (!full) { var angle = window.screen.orientation ? window.screen.orientation.angle : 0; var orientation = win.orientation || angle || 0; if (orientation == 90 || orientation == -90) { //横屏 win_w = win_w * ratio; }; }; var size = 100 / (psd_w / win_w); var _min = number(_min) || 50; var _max = number(_max) || 100; size = size >= _max ? _max : size; size = size <= _min ? _min : size; if (html.style.fontsize != size + 'px') { html.style.fontsize = size + 'px'; }; return size; }; //立即执行 var size = _rem(psd_w, _min, _max, full); //某些低性能安卓机延迟0.3s执行 var _t = settimeout(function() { _rem(psd_w, _min, _max, full); }, 300); //窗口改变 var ua = navigator.useragent; var is_orientation = boolean('orientation' in win) && boolean(ua.match(/iphone|ipod|android|ios|ipad|windows phone/)); var event = is_orientation ? 'orientationchange' : 'resize'; var time = is_orientation ? 300 : 100; if (!is_orientation || full) { win.addeventlistener(event, function() { cleartimeout(_t); var _t = settimeout(function() { _rem(psd_w, _min, _max, full); }, time); }, false); }; //窗口显示 win.addeventlistener('pageshow', function() { cleartimeout(_t); var _t = settimeout(function() { _rem(psd_w, _min, _max, full); }, time); }, false); win.addeventlistener('pagehide', function() { cleartimeout(_t); var _t = settimeout(function() { _rem(psd_w, _min, _max, full); }, time); }, false); //文档加载完成 if ("complete" === doc.readystate) { _rem(psd_w, _min, _max, full); }; doc.addeventlistener("domcontentloaded", function() { _rem(psd_w, _min, _max, full); }, false); })();