index.html 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <!doctype html><html lang=""><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width,initial-scale=1"/><link rel="icon" href="/favicon.ico"/><title>app</title><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"/><script src="https://unpkg.com/element-ui/lib/index.js"></script><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" prefetch></script><script defer="defer" src="/js/chunk-vendors-1656f0b4.508d9dc5.js"></script><script defer="defer" src="/js/chunk-vendors-3bad0650.ccf6c001.js"></script><script defer="defer" src="/js/app.99d7a86c.js"></script><link href="/css/app.bcaa1535.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body><script>(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 < 800 && (width = 800); //设置最小宽度
  11. width > maxWidth && (width = maxWidth);
  12. var rem = (width * 100) / designWidth; //屏幕宽度 / 设计稿宽度 * 100,若为电脑运行,此时rem=100
  13. remStyle.innerHTML = "html{font-size:" + rem + "px;}"; //此时重新定义html根元素大小为1rem,即100px
  14. }
  15. if (docEl.firstElementChild) {
  16. docEl.firstElementChild.appendChild(remStyle);
  17. } else {
  18. var wrap = doc.createElement("div");
  19. wrap.appendChild(remStyle);
  20. doc.write(wrap.innerHTML);
  21. wrap = null;
  22. }
  23. //要等 wiewport 设置好后才能执行 refreshRem,不然 refreshRem 会执行2次;
  24. refreshRem();
  25. win.addEventListener(
  26. "resize",
  27. function () {
  28. clearTimeout(tid); //防止执行两次
  29. tid = setTimeout(refreshRem, 300);
  30. },
  31. false
  32. );
  33. win.addEventListener(
  34. "pageshow",
  35. function (e) {
  36. if (e.persisted) {
  37. // 浏览器后退的时候重新计算
  38. clearTimeout(tid);
  39. tid = setTimeout(refreshRem, 300);
  40. }
  41. },
  42. false
  43. );
  44. if (doc.readyState === "complete") {
  45. doc.body.style.fontSize = "16px";
  46. } else {
  47. doc.addEventListener(
  48. "DOMContentLoaded",
  49. function (e) {
  50. doc.body.style.fontSize = "16px";
  51. },
  52. false
  53. );
  54. }
  55. })(1920); //此处传入设计稿宽度及最大宽度</script></html>