Main.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <template>
  2. <div class="main">
  3. <div class="header">
  4. <span class="header-title">MES 生产执行 制造</span>
  5. <div class="stage"><div class="circle"><span class="shadow"></span></div></div>
  6. <div class="planet">
  7. <div class="ball">
  8. <span class="title">设备系统</span>
  9. <div class="stage1"><div class="circle"><span class="shadow"></span></div></div>
  10. </div>
  11. <div class="ball second">
  12. <span class="title">质量系统</span>
  13. <div class="stage1"><div class="circle"><span class="shadow"></span></div></div>
  14. </div>
  15. <div class="ball third">
  16. <span class="title">生产系统</span>
  17. <div class="stage1"><div class="circle"><span class="shadow"></span></div></div>
  18. </div>
  19. <div class="ball four">
  20. <span class="title">条码系统</span>
  21. <div class="stage1"><div class="circle"><span class="shadow"></span></div></div>
  22. </div>
  23. <div class="ball five">
  24. <span class="title">排班系统</span>
  25. <div class="stage1"><div class="circle"><span class="shadow"></span></div></div>
  26. </div>
  27. <div class="ball six">
  28. <span class="title">仓库系统</span>
  29. <div class="stage1"><div class="circle"><span class="shadow"></span></div></div>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. </template>
  35. <script>
  36. export default {
  37. }
  38. </script>
  39. <style lang="less" scoped>
  40. .main{
  41. width: 1920px;
  42. height: 1080px;
  43. background: url(~@/assets/mine-bg.png);
  44. overflow: hidden;
  45. .header {
  46. width: 100%;
  47. padding-top:200px;
  48. display:flex;
  49. position: relative;
  50. justify-content: center;
  51. align-items: center;
  52. transform-style: preserve-3d;
  53. perspective: 1500px;
  54. .header-title {
  55. position: absolute;
  56. top:62%;
  57. left:41%;
  58. z-index:100000;
  59. font-size: 40px;
  60. color: #FFFFFF;
  61. background: linear-gradient(0deg, #079cf1 20%, #FFFFFF 50%);
  62. -webkit-background-clip: text;
  63. -webkit-text-fill-color: transparent;
  64. font-weight: bold;
  65. }
  66. }
  67. .stage {
  68. width: 300px;
  69. height: 300px;
  70. display: inline-block;
  71. margin: 20px;
  72. perspective: 1200px;
  73. perspective-origin: 50% 50%;
  74. .circle{
  75. background: url('~@/assets/earth.png') repeat-x;
  76. background-size: auto 100%;
  77. border-radius: 50%;
  78. height: 300px;
  79. width: 300px;
  80. position: relative;
  81. margin: 0;
  82. animation: move-map 30s infinite linear;
  83. &::before {
  84. content:'';
  85. position: absolute;
  86. top:0;
  87. left:0;
  88. width: 100%;
  89. height: 100%;
  90. border-radius: 50%;
  91. box-shadow: -40px 10px 70px 10px RGBA(40, 83, 205, 0.7) inset;
  92. z-index: 2;
  93. }
  94. &::after {
  95. content:'';
  96. position: absolute;
  97. top:0;
  98. left:0;
  99. width: 100%;
  100. height: 100%;
  101. border-radius: 50%;
  102. filter: blur(0);
  103. opacity: 0.5;
  104. background: radial-gradient(circle at 50% 120%, #81e8f6, #76deef 10%, #055194 80%, #062745 100%);
  105. background-size: auto 100%;
  106. z-index: 2222222;
  107. }
  108. }
  109. }
  110. .stage1 {
  111. width: 200px;
  112. height: 200px;
  113. display: inline-block;
  114. margin: 20px;
  115. perspective-origin: 50% 50%;
  116. .circle{
  117. background: url('~@/assets/earthpng.png') repeat-x;
  118. background-size: auto 100%;
  119. border-radius: 50%;
  120. height: 200px;
  121. width: 200px;
  122. position: relative;
  123. margin: 0;
  124. animation: move-map 30s infinite linear;
  125. &::before {
  126. content:'';
  127. position: absolute;
  128. top:0;
  129. left:0;
  130. width: 100%;
  131. height: 100%;
  132. border-radius: 50%;
  133. box-shadow: -40px 10px 70px 10px RGBA(40, 83, 205, 0.7) inset;
  134. z-index: 2;
  135. }
  136. &::after {
  137. content:'';
  138. position: absolute;
  139. top:0;
  140. left:0;
  141. width: 100%;
  142. height: 100%;
  143. border-radius: 50%;
  144. filter: blur(0);
  145. background: url('~@/assets/earth-bg.png') no-repeat;
  146. background-size: 200%;
  147. opacity: 0.8;
  148. background-position: -100px -130px;
  149. z-index: 222;
  150. }
  151. }
  152. }
  153. }
  154. .planet {
  155. position: absolute;
  156. left:390px;
  157. top:30px;
  158. border: 5px solid #13c2c2;
  159. width: 1200px;
  160. height: 1200px;
  161. transform: scaleY(0.5) rotateZ(30deg);
  162. border-radius: 50%;
  163. transform-style: preserve-3d;
  164. }
  165. .ball {
  166. width: 200px;
  167. height: 200px;
  168. position: absolute;
  169. border-radius: 50%;
  170. left: calc(50% - 25px);
  171. top: -100px;
  172. text-align: center;
  173. line-height: 200px;
  174. color: #13c2c2;
  175. transform: rotateZ(-30deg) scaleY(2);
  176. .title {
  177. position: absolute;
  178. top:20px;
  179. left:20px;
  180. width: 100%;
  181. height: 100%;
  182. z-index:100000;
  183. font-size: 35px;
  184. color: #FFFFFF;
  185. background: linear-gradient(0deg, #079cf1 40%, #FFFFFF 50%);
  186. -webkit-background-clip: text;
  187. -webkit-text-fill-color: transparent;
  188. font-weight: bold;
  189. }
  190. }
  191. .second {
  192. left: calc(50% + 450px);
  193. top: 400px;
  194. }
  195. .third {
  196. left: calc(50% + 230px);
  197. top: 910px;
  198. }
  199. .four {
  200. left: calc(50% - 300px);
  201. top: 1030px;
  202. }
  203. .five {
  204. left: calc(50% - 745px);
  205. top: 480px;
  206. }
  207. .six {
  208. left: calc(50% - 530px);
  209. top: 10px;
  210. }
  211. .planet {
  212. animation: planet-rotate 16s linear infinite;
  213. }
  214. .ball {
  215. animation: self-rotate 16s linear infinite;
  216. }
  217. /* // 公转动画 */
  218. @keyframes planet-rotate {
  219. 0% {
  220. transform: rotateX(60deg)scaleY(0.5) rotate(0);
  221. }
  222. 100% {
  223. transform: rotateX(60deg) scaleY(0.5) rotate(360deg);
  224. }
  225. }
  226. /* // 自转动画 */
  227. @keyframes self-rotate {
  228. 0% {
  229. transform: rotate(0) scaleY(2) rotateX(-60deg);
  230. }
  231. 100% {
  232. transform: rotate(-360deg) scaleY(2) rotateX(-60deg);
  233. }
  234. }
  235. @keyframes move-map {
  236. 0% {
  237. background-position: -880px 0; }
  238. 100% {
  239. background-position: 0 0; } }
  240. </style>