response.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. (function(designWidth, maxWidth) {
  2. var doc = document,
  3. win = window,
  4. docEl = doc.documentElement,
  5. remStyle = document.createElement("style"),
  6. tid;
  7. function refreshRem() {
  8. var width = docEl.getBoundingClientRect().width;
  9. maxWidth = maxWidth || 540;
  10. width > maxWidth && (width = maxWidth);
  11. var rem = width * 100 / designWidth;
  12. remStyle.innerHTML = "html{font-size:" + rem + "px;}"
  13. }
  14. if (docEl.firstElementChild) {
  15. docEl.firstElementChild.appendChild(remStyle)
  16. } else {
  17. var wrap = doc.createElement("div");
  18. wrap.appendChild(remStyle);
  19. doc.write(wrap.innerHTML);
  20. wrap = null
  21. }
  22. refreshRem();
  23. win.addEventListener("resize", function() {
  24. clearTimeout(tid);
  25. tid = setTimeout(refreshRem, 300)
  26. }, false);
  27. win.addEventListener("pageshow", function(e) {
  28. if (e.persisted) {
  29. clearTimeout(tid);
  30. tid = setTimeout(refreshRem, 300)
  31. }
  32. }, false);
  33. if (doc.readyState === "complete") {
  34. doc.body.style.fontSize = "16px"
  35. } else {
  36. doc.addEventListener("DOMContentLoaded", function(e) {
  37. doc.body.style.fontSize = "16px"
  38. }, false)
  39. }
  40. })(750, 750);