index.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="referer" content="never" />
  7. <meta name="renderer" content="webkit" />
  8. <meta
  9. name="viewport"
  10. content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0"
  11. />
  12. <title></title>
  13. <link rel="icon" href="./favicon.ico" />
  14. <style>
  15. html,
  16. body,
  17. #app {
  18. height: 100%;
  19. overflow: hidden;
  20. }
  21. * {
  22. -webkit-font-smoothing: antialiased;
  23. font-family:
  24. 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB',
  25. 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
  26. }
  27. .preload__wrap {
  28. display: flex;
  29. flex-direction: column;
  30. letter-spacing: 1px;
  31. background-color: #2f3447;
  32. position: fixed;
  33. left: 0;
  34. top: 0;
  35. height: 100%;
  36. width: 100%;
  37. z-index: 9999;
  38. transition: all 0.3s ease-in;
  39. opacity: 1;
  40. pointer-events: none;
  41. }
  42. .preload__wrap.is-hide {
  43. opacity: 0;
  44. }
  45. .preload__container {
  46. display: flex;
  47. justify-content: center;
  48. align-items: center;
  49. flex-direction: column;
  50. width: 100%;
  51. user-select: none;
  52. -webkit-user-select: none;
  53. flex-grow: 1;
  54. }
  55. .preload__name {
  56. font-size: 30px;
  57. color: #fff;
  58. letter-spacing: 5px;
  59. font-weight: bold;
  60. margin-bottom: 30px;
  61. min-height: 50px;
  62. }
  63. .preload__title {
  64. color: #fff;
  65. font-size: 14px;
  66. margin: 30px 0 20px 0;
  67. min-height: 20px;
  68. }
  69. .preload__sub-title {
  70. color: #ababab;
  71. font-size: 12px;
  72. min-height: 20px;
  73. }
  74. .preload__name,
  75. .preload__title,
  76. .preload__sub-title {
  77. animation: s 0.5s ease-in;
  78. }
  79. @keyframes s {
  80. from {
  81. opacity: 0;
  82. }
  83. to {
  84. opacity: 1;
  85. }
  86. }
  87. .preload__loading {
  88. height: 44px;
  89. width: 44px;
  90. border-radius: 30px;
  91. border: 7px solid currentColor;
  92. border-bottom-color: #2f3447;
  93. position: relative;
  94. animation:
  95. r 1s infinite cubic-bezier(0.17, 0.67, 0.83, 0.67),
  96. bc 2s infinite ease-in;
  97. transform: rotate(0deg);
  98. box-sizing: border-box;
  99. }
  100. @keyframes r {
  101. from {
  102. transform: rotate(0deg);
  103. }
  104. to {
  105. transform: rotate(360deg);
  106. }
  107. }
  108. .preload__loading::after,
  109. .preload__loading::before {
  110. content: '';
  111. display: inline-block;
  112. position: absolute;
  113. bottom: -2px;
  114. height: 7px;
  115. width: 7px;
  116. border-radius: 10px;
  117. background-color: currentColor;
  118. }
  119. .preload__loading::after {
  120. left: -1px;
  121. }
  122. .preload__loading::before {
  123. right: -1px;
  124. }
  125. @keyframes bc {
  126. 0% {
  127. color: #689cc5;
  128. }
  129. 25% {
  130. color: #b3b7e2;
  131. }
  132. 50% {
  133. color: #93dbe9;
  134. }
  135. 75% {
  136. color: #abbd81;
  137. }
  138. 100% {
  139. color: #689cc5;
  140. }
  141. }
  142. </style>
  143. </head>
  144. <body>
  145. <div class="preload__wrap" id="Loading">
  146. <div class="preload__container">
  147. <div class="preload__name"></div>
  148. <div class="preload__loading"></div>
  149. <div class="preload__title"></div>
  150. <div class="preload__sub-title"></div>
  151. </div>
  152. </div>
  153. <div id="app"></div>
  154. <script type="module" src="/src/main.ts"></script>
  155. </body>
  156. </html>