rem.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. (function (win) {
  2. console.log('aa')
  3. var tid;
  4. function refreshRem() {
  5. let designSize = 1920; // 设计图尺寸
  6. // let designSize = 1440; // 设计图尺寸
  7. let html = document.documentElement;
  8. let wW = html.clientWidth; // 窗口宽度
  9. let rem = wW * 100 / designSize;
  10. document.documentElement.style.fontSize = rem + 'px';
  11. }
  12. win.addEventListener('resize', function () {
  13. clearTimeout(tid);
  14. tid = setTimeout(refreshRem, 300);
  15. }, false);
  16. win.addEventListener('pageshow', function (e) {
  17. if (e.persisted) {
  18. clearTimeout(tid);
  19. tid = setTimeout(refreshRem, 300);
  20. }
  21. }, false);
  22. refreshRem();
  23. })(window);
  24. // (function flexible(window, document) {
  25. // var docEl = document.documentElement;
  26. // var dpr = window.devicePixelRatio || 1;
  27. // // adjust body font size
  28. // function setBodyFontSize() {
  29. // if (document.body) {
  30. // document.body.style.fontSize = 12 * dpr + "px";
  31. // } else {
  32. // document.addEventListener("DOMContentLoaded", setBodyFontSize);
  33. // }
  34. // }
  35. // setBodyFontSize();
  36. // // set 1rem = viewWidth / 10
  37. // function setRemUnit() {
  38. // var rem = docEl.clientWidth / 24; // 这里默认是10等份,手动改为24,此时1rem=1920/24px即80px。(设计稿是1920px的)
  39. // docEl.style.fontSize = rem + "px";
  40. // }
  41. // setRemUnit();
  42. // // reset rem unit on page resize
  43. // window.addEventListener("resize", setRemUnit);
  44. // window.addEventListener("pageshow", function(e) {
  45. // if (e.persisted) {
  46. // setRemUnit();
  47. // }
  48. // });
  49. // // detect 0.5px supports
  50. // if (dpr >= 2) {
  51. // var fakeBody = document.createElement("body");
  52. // var testElement = document.createElement("div");
  53. // testElement.style.border = ".5px solid transparent";
  54. // fakeBody.appendChild(testElement);
  55. // docEl.appendChild(fakeBody);
  56. // if (testElement.offsetHeight === 1) {
  57. // docEl.classList.add("hairlines");
  58. // }
  59. // docEl.removeChild(fakeBody);
  60. // }
  61. // })(window, document);