You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

rotation3D.css 4.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /*
  2. 椭圆会使内部失真 transform: rotateX(50deg);
  3. */
  4. .rotation3D{
  5. position: relative; width: 800px; height: 800px; cursor: move; user-select: none;
  6. margin: 0 auto; margin-top: -40px;
  7. /* border: 1px solid white; border-radius: 100%; */
  8. }
  9. .rotation3D .center{
  10. display: none;
  11. position: absolute; left: 50%; top: 50%;
  12. transform: translate(-50%, -50%);
  13. }
  14. .rotation3D .itemList{ position: absolute; width: 100%; height: 100%; z-index: 20; }
  15. .rotation3D .lineList{
  16. position: absolute; width: 100%; height: 100%; z-index: 10;
  17. transform-style: preserve-3d;
  18. }
  19. /*---------------------------点样式---------------------------*/
  20. .rotation3D__item{
  21. position: absolute; display: block; cursor: pointer; width: 161px; height: 188px;
  22. text-align: center; line-height: 30px; font-size: 16px; color: white;
  23. /*background: #2292ef; border-radius: 4px;*/
  24. }
  25. .rotation3D__item .scale{ position: absolute; top: 0; width: 100%; height: 100%; }
  26. .rotation3D__item .cont{ position: relative; z-index: 2; }
  27. .rotation3D__item .cont .iconfont { font-size: 28px; margin-top: 30px; margin-bottom: 96px; display: block; }
  28. .rotation3D__item .cont p{ color: #101010; }
  29. .itemList .rotation3D__item .cont p::after{
  30. font-size: 12px;
  31. content: '';
  32. position: absolute;
  33. left: 0;
  34. right: 0;
  35. margin-top: 60px;
  36. color: #888;
  37. }
  38. .itemList .rotation3D__item:nth-child(1) .cont p::after{
  39. content: "鹏城云脑一号";
  40. }
  41. .itemList .rotation3D__item:nth-child(2) .cont p::after{
  42. content: "鹏城云脑二号";
  43. }
  44. .itemList .rotation3D__item:nth-child(3) .cont p::after{
  45. content: "北大人工智能集群系统";
  46. }
  47. .itemList .rotation3D__item:nth-child(4) .cont p::after{
  48. content: "合肥类脑智能开放平台";
  49. }
  50. .itemList .rotation3D__item:nth-child(5) .cont p::after{
  51. content: "武汉人工智能计算中心";
  52. }
  53. .itemList .rotation3D__item:nth-child(6) .cont p::after{
  54. content: "西安未来人工智能计算中心";
  55. }
  56. .itemList .rotation3D__item:nth-child(7) .cont p::after{
  57. content: "中原人工智能计算中心";
  58. }
  59. .itemList .rotation3D__item:nth-child(8) .cont p::after{
  60. content: "成都人工智能计算中心";
  61. }
  62. .itemList .rotation3D__item:nth-child(9) .cont p::after{
  63. content: "横琴先进智能计算中心";
  64. }
  65. .itemList .rotation3D__item:nth-child(10) .cont p::after{
  66. content: "国家超级计算济南中心";
  67. }
  68. .rotation3D__item.blue{ color: #01e9fc; }
  69. .rotation3D__item.green{ color: #b4b3ca; }
  70. .rotation3D__item.yellow{ color: #ffd200; }
  71. /*底座*/
  72. .rotation3D__item .baseImg{ position: absolute; width: 100%; height: 100%; z-index: 1; }
  73. .rotation3D__item.blue .baseImg{ background: url("img/idc-red.png"); }
  74. .rotation3D__item.green .baseImg{ background: url("img/idc-green.png"); }
  75. .rotation3D__item.yellow .baseImg{ background: url("img/idc-yellow.png"); }
  76. /*---------------------------
  77. 线样式
  78. 线高为总高的一般
  79. ---------------------------*/
  80. .rotation3D__line{
  81. position: absolute; left: 50%; top: 50%;
  82. display: block; width: 1px; height: 50%;
  83. padding-top: 60px; color: #fff; font-size: 50px;
  84. /*background: #fff;*/
  85. /*原点设置在中间*/
  86. transform-origin: 50% 0;
  87. transform-style: preserve-3d;
  88. }
  89. .rotation3D__line .pos{ position: absolute; top: 0; }
  90. .rotation3D__line svg { position: absolute; top: 0; }
  91. .rotation3D__line svg path {
  92. stroke: #fff; fill: none;
  93. stroke-width: 2;
  94. animation: path-animation 100s linear 0s infinite normal;
  95. }
  96. @keyframes path-animation {
  97. 0% { stroke-dashoffset:500; }
  98. 100% { stroke-dashoffset:0; }
  99. }
  100. .rotation3D__line .dot {
  101. position: absolute; top: 0; left: 0; text-align: center;
  102. /*width: 35px; height: 35px; font-size: 35px; */
  103. width: 24px; height: 24px; font-size: 24px;
  104. }
  105. .rotation3D__line .dot1,.rotation3D__line .dot3,.rotation3D__line .dot4{
  106. animation: svg-path-animation 6s ease-in-out 0s infinite normal;
  107. }
  108. .rotation3D__line .dot1{
  109. offset-path: path("M0 400, 0 0"); offset-distance: 0%;
  110. }
  111. .rotation3D__line .dot2{
  112. offset-path: path("M0 200, 0 0"); offset-distance: 0%;
  113. background: #ffd200; border-radius: 100%;
  114. font-size: 22px; color: #000;
  115. }
  116. .rotation3D__line .dot3{
  117. offset-path: path("M20 400 S 0 200, 20 0"); offset-distance: 0%;
  118. }
  119. .rotation3D__line .dot4{
  120. position: relative;
  121. offset-path: path("M20 0 S 40 200, 20 400"); offset-distance: 0%;
  122. }
  123. @keyframes svg-path-animation {
  124. from {offset-distance: 100%;}
  125. to {offset-distance: 0%;}
  126. }
  127. .dot4 > span{
  128. position: absolute;
  129. font-size: 12px;
  130. color: #000;
  131. transform: rotate(180deg)scale(0.80);
  132. }
  133. /*颜色*/
  134. .rotation3D__line.blue { color: #07b2f9; }
  135. .rotation3D__line.green { color: #ac94ee; }
  136. .rotation3D__line.yellow { color: #ffd500; }
  137. .rotation3D__line.blue svg path { stroke: #07b2f9; }
  138. .rotation3D__line.green svg path { stroke: #ac94ee; }
  139. .rotation3D__line.yellow svg path { stroke: #ffd500; }