index.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <!DOCTYPE html>
  2. <html lang="zh-cmn-Hans" id="htmlRoot" data-theme="light">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible" />
  6. <meta content="webkit" name="renderer" />
  7. <meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
  8. name="viewport" />
  9. <link href="/favicon.ico" rel="icon" />
  10. <script>
  11. const script = document.createElement("script");
  12. script.src = "./app.config.js?v=" + Date.now()
  13. document.head.append(script)
  14. </script>
  15. <title>
  16. <%= title %>
  17. </title>
  18. </head>
  19. <body>
  20. <div id="app">
  21. <style>
  22. .first-loading-wrap {
  23. display: flex;
  24. width: 100%;
  25. height: 100vh;
  26. justify-content: center;
  27. align-items: center;
  28. flex-direction: column;
  29. }
  30. .first-loading-wrap>h1 {
  31. font-size: 128px;
  32. }
  33. .first-loading-wrap .loading-wrap {
  34. padding: 98px;
  35. display: flex;
  36. justify-content: center;
  37. align-items: center;
  38. }
  39. .dot {
  40. animation: antRotate 1.2s infinite linear;
  41. transform: rotate(45deg);
  42. position: relative;
  43. display: inline-block;
  44. font-size: 32px;
  45. width: 32px;
  46. height: 32px;
  47. box-sizing: border-box;
  48. }
  49. .dot i {
  50. width: 14px;
  51. height: 14px;
  52. position: absolute;
  53. display: block;
  54. background-color: #1890ff;
  55. border-radius: 100%;
  56. transform: scale(0.75);
  57. transform-origin: 50% 50%;
  58. opacity: 0.3;
  59. animation: antSpinMove 1s infinite linear alternate;
  60. }
  61. .dot i:nth-child(1) {
  62. top: 0;
  63. left: 0;
  64. }
  65. .dot i:nth-child(2) {
  66. top: 0;
  67. right: 0;
  68. -webkit-animation-delay: 0.4s;
  69. animation-delay: 0.4s;
  70. }
  71. .dot i:nth-child(3) {
  72. right: 0;
  73. bottom: 0;
  74. -webkit-animation-delay: 0.8s;
  75. animation-delay: 0.8s;
  76. }
  77. .dot i:nth-child(4) {
  78. bottom: 0;
  79. left: 0;
  80. -webkit-animation-delay: 1.2s;
  81. animation-delay: 1.2s;
  82. }
  83. @keyframes antRotate {
  84. to {
  85. -webkit-transform: rotate(405deg);
  86. transform: rotate(405deg);
  87. }
  88. }
  89. @-webkit-keyframes antRotate {
  90. to {
  91. -webkit-transform: rotate(405deg);
  92. transform: rotate(405deg);
  93. }
  94. }
  95. @keyframes antSpinMove {
  96. to {
  97. opacity: 1;
  98. }
  99. }
  100. @-webkit-keyframes antSpinMove {
  101. to {
  102. opacity: 1;
  103. }
  104. }
  105. </style>
  106. <div class="first-loading-wrap">
  107. <div class="loading-wrap">
  108. <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
  109. </div>
  110. </div>
  111. </div>
  112. <div class="versionHash">
  113. <span>version hash: <%= hash %></span>
  114. <style>
  115. .versionHash {
  116. position: fixed;
  117. bottom: 10px;
  118. right: 20px;
  119. font-size: 12px;
  120. color: #ccc;
  121. z-index: 10000;
  122. }
  123. </style>
  124. </div>
  125. <script>
  126. var globalThis = window;
  127. </script>
  128. <script src="/src/main.ts" type="module"></script>
  129. </body>
  130. </html>