index.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <!DOCTYPE html>
  2. <html lang="">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport"
  7. content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui, viewport-fit=cove">
  8. <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  9. <title><%= htmlWebpackPlugin.options.title %></title>
  10. <script>
  11. </script>
  12. <style>
  13. /* 背景图样式 */
  14. .vr-bg {
  15. z-index: 30;
  16. position: fixed;
  17. background-repeat: no-repeat;
  18. background-size: auto 100%;
  19. background-position: center;
  20. background-color: rgba(117, 117, 117, 0.75);
  21. }
  22. .model-action-container {
  23. position: fixed;
  24. top: 50px;
  25. right: 0;
  26. width: auto;
  27. height: auto;
  28. background: rgba(0, 0, 0, 0.75);
  29. border-radius: 4px;
  30. overflow: hidden;
  31. z-index: 200;
  32. display: flex;
  33. flex-direction: column;
  34. justify-content: flex-start;
  35. align-items: center;
  36. /* display: none; */
  37. }
  38. .model-action-container .model-action-item {
  39. width: auto;
  40. height: 36px;
  41. display: flex;
  42. justify-content: flex-start;
  43. align-items: center;
  44. margin: 0 20px;
  45. }
  46. .model-action-container .model-action-item:not(:first-child) {
  47. border-top: 1px dashed #fff;
  48. }
  49. .model-action-container .model-action-item .action-title {
  50. height: 25px;
  51. line-height: 25px;
  52. font-size: 18px;
  53. text-align: center;
  54. color: #fff;
  55. }
  56. .model-action-container .model-action-item .action-btn {
  57. position: relative;
  58. padding: 0px 30px;
  59. margin: 0 20px;
  60. color: #21ebff;
  61. text-decoration: none;
  62. font-size: 18px;
  63. text-transform: uppercase;
  64. transition: 0.5s;
  65. overflow: hidden;
  66. -webkit-box-reflect: below 1px linear-gradient(transparent, #0003);
  67. }
  68. .model-action-container .model-action-item .action-btn:hover {
  69. background: #21ebff;
  70. color: #111;
  71. box-shadow: 0 0 40px #21ebff;
  72. transition-delay: 0.5s;
  73. }
  74. .model-action-container .model-action-item .action-btn:nth-child(1) {
  75. filter: hue-rotate(115deg);
  76. }
  77. .model-action-container .model-action-item .action-btn:nth-child(3) {
  78. filter: hue-rotate(270deg);
  79. }
  80. .model-action-container .model-action-item .action-btn::before {
  81. content: '';
  82. position: absolute;
  83. top: 0;
  84. left: 0;
  85. width: 10px;
  86. height: 10px;
  87. border-top: 2px solid #21ebff;
  88. border-left: 2px solid #21ebff;
  89. transition: 0.5s;
  90. transition-delay: 0.5s;
  91. }
  92. .model-action-container .model-action-item .action-btn:hover::before {
  93. width: 100%;
  94. height: 100%;
  95. transition-delay: 0s;
  96. }
  97. .model-action-container .model-action-item .action-btn::after {
  98. content: '';
  99. position: absolute;
  100. right: 0;
  101. bottom: 0;
  102. width: 10px;
  103. height: 10px;
  104. border-bottom: 2px solid #21ebff;
  105. border-right: 2px solid #21ebff;
  106. transition: 0.5s;
  107. transition-delay: 0.5s;
  108. }
  109. .model-action-container .model-action-item .action-btn:hover::after {
  110. width: 100%;
  111. height: 100%;
  112. transition-delay: 0s;
  113. }
  114. .model-action-container .input-container {
  115. display: flex;
  116. justify-content: flex-start;
  117. align-items: center;
  118. margin: 20px 20px;
  119. }
  120. .model-action-container .input-container .input-field {
  121. margin-top: 20px;
  122. margin-left: 20px;
  123. border: 1px solid #ccc;
  124. border-radius: 4px;
  125. padding: 6px 12px;
  126. font-size: 14px;
  127. outline: none;
  128. color: #333;
  129. }
  130. .model-action-container .input-container .input-field:focus {
  131. outline: none;
  132. }
  133. .mode-panel {
  134. position: fixed;
  135. right: 20px;
  136. bottom: 20px;
  137. width: 100px;
  138. height: auto;
  139. display: flex;
  140. flex-direction: column;
  141. justify-content: start;
  142. align-items: center;
  143. }
  144. .mode-btn {
  145. width: 100px;
  146. text-align: center;
  147. margin-top: 10px;
  148. }
  149. canvas {
  150. border-radius: 28px;
  151. }
  152. </style>
  153. </head>
  154. <body>
  155. <noscript>
  156. <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
  157. </noscript>
  158. <div id="app"></div>
  159. <!-- built files will be auto injected -->
  160. <div id="log"></div>
  161. <!-- 主显示承载器 -->
  162. <div id="tag-billboards"></div>
  163. <div id="pano-size"></div>
  164. <div class="mode-panel">
  165. <button id="panorama-btn" class="mode-btn" style="display: none;" data-mode="panorama">全景</button>
  166. <button id="dollhouse-btn" class="mode-btn" style="display: none;" data-mode="dollhouse">3d</button>
  167. <button id="floorplan-btn" class="mode-btn" style="display: none;" data-mode="floorplan">平面</button>
  168. </div>
  169. <script>
  170. window.renderWidth = 0;
  171. window.renderHeight = 0;
  172. </script>
  173. </body>
  174. </html>
  175. <script src="./sdk/HOUSEPLAY.js"></script>
  176. <script src="./sdk/FBXLoader.js"></script>
  177. <script src="./sdk/DRACOLoader.js"></script>
  178. <script src="./sdk/SkeletonUtils.js"></script>
  179. <script src="./sdk/inflate.min.js"></script>
  180. <script src="./sdk/EffectComposer.js"></script>
  181. <script src="./sdk/RenderPass.js"></script>
  182. <script src="./sdk/ShaderPass.js"></script>
  183. <script src="./sdk/OutlinePass.js"></script>