rem.js 793 B

1234567891011121314151617181920212223242526272829
  1. ;
  2. (function(win) {
  3. var doc = win.document;
  4. var docEl = doc.documentElement;
  5. var tid;
  6. function refreshRem() {
  7. // 1. 获取屏幕宽度
  8. var width = docEl.getBoundingClientRect().width;
  9. var rem = width / 7.5; // 将屏幕宽度分成7.5份, 1份为1rem
  10. docEl.style.fontSize = rem + 'px';
  11. }
  12. // 2. 监听窗口变化事件
  13. win.addEventListener('resize', function() {
  14. clearTimeout(tid);
  15. tid = setTimeout(refreshRem, 10);
  16. }, false);
  17. // 3. 监听页面加载完成事件
  18. win.addEventListener('pageshow', function(e) {
  19. if (e.persisted) {//判断是否加载缓存
  20. clearTimeout(tid);
  21. tid = setTimeout(refreshRem, 10);
  22. }
  23. }, false);
  24. refreshRem();
  25. })(window);