index.html 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <!--
  2. * @Author: wjc
  3. * @Date: 2021-12-22 10:03:00
  4. * @LastEditors: wjc
  5. * @LastEditTime: 2021-12-22 10:03:00
  6. * @Description:
  7. -->
  8. <!DOCTYPE html>
  9. <html lang="zh">
  10. <head>
  11. <meta charset="UTF-8">
  12. <meta name="viewport" content="width=device-width,initial-scale=0,maximum-scale=0,user-scalable=yes,shrink-to-fit=no">
  13. <title>form generator</title>
  14. <style>
  15. html,
  16. body {
  17. height: 100%;
  18. overflow: hidden;
  19. padding: 0;
  20. margin: 0;
  21. }
  22. #frame {
  23. display: none;
  24. }
  25. </style>
  26. <style>
  27. .pre-loader {
  28. position: absolute;
  29. top: calc(50% - 32px);
  30. left: calc(50% - 32px);
  31. width: 64px;
  32. height: 64px;
  33. border-radius: 50%;
  34. perspective: 800px;
  35. }
  36. .pre-loader .inner {
  37. position: absolute;
  38. box-sizing: border-box;
  39. width: 100%;
  40. height: 100%;
  41. border-radius: 50%;
  42. }
  43. .pre-loader .inner.one {
  44. left: 0%;
  45. top: 0%;
  46. -webkit-animation: rotate-one 1s linear infinite;
  47. animation: rotate-one 1s linear infinite;
  48. border-bottom: 3px solid #bc9048;
  49. }
  50. .pre-loader .inner.two {
  51. right: 0%;
  52. top: 0%;
  53. -webkit-animation: rotate-two 1s linear infinite;
  54. animation: rotate-two 1s linear infinite;
  55. border-right: 3px solid #74aeff;
  56. }
  57. .pre-loader .inner.three {
  58. right: 0%;
  59. bottom: 0%;
  60. -webkit-animation: rotate-three 1s linear infinite;
  61. animation: rotate-three 1s linear infinite;
  62. border-top: 3px solid #caef74;
  63. }
  64. @keyframes rotate-one {
  65. 0% {
  66. -webkit-transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
  67. transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
  68. }
  69. 100% {
  70. -webkit-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
  71. transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
  72. }
  73. }
  74. @keyframes rotate-two {
  75. 0% {
  76. -webkit-transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
  77. transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
  78. }
  79. 100% {
  80. -webkit-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
  81. transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
  82. }
  83. }
  84. @keyframes rotate-three {
  85. 0% {
  86. -webkit-transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
  87. transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
  88. }
  89. 100% {
  90. -webkit-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
  91. transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
  92. }
  93. }
  94. </style>
  95. </head>
  96. <body>
  97. <div class="pre-loader" id="pre-loader">
  98. 123
  99. <div class="inner one"></div>
  100. <div class="inner two"></div>
  101. <div class="inner three"></div>
  102. </div>
  103. <iframe id="frame" width="100%" height="100%" frameborder="0"></iframe>
  104. <script>
  105. window.onload = function () {
  106. const vscode = acquireVsCodeApi()
  107. const cmds = {
  108. setSrc: function (message) {
  109. var frame = document.getElementById('frame')
  110. frame.src = message.data.src
  111. frame.onload = function () {
  112. document.getElementById('pre-loader').style.display = "none"
  113. frame.style.display = "block"
  114. frame.contentWindow.postMessage({
  115. cmd: 'mountApp',
  116. data: message.data.db // 发送db.json中的内容
  117. }, '*')
  118. }
  119. },
  120. writeFile: function (message) {
  121. vscode.postMessage(message)
  122. },
  123. openUrl: function (message) {
  124. vscode.postMessage(message)
  125. },
  126. setStorageItem: function (message) {
  127. vscode.postMessage(message)
  128. }
  129. }
  130. window.addEventListener('message', event => {
  131. const message = event.data
  132. if (message && message.cmd) cmds[message.cmd](message)
  133. })
  134. }
  135. </script>
  136. </body>
  137. </html>