demo.html 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <style>
  8. body, html {
  9. width: 100%;
  10. height: 100%;
  11. margin: 0px;
  12. }
  13. body {
  14. display: flex;
  15. align-items: center;
  16. justify-content: center;
  17. perspective: 900px;
  18. background-color: #FFF;
  19. }
  20. .cube {
  21. width: 100px;
  22. height: 100px;
  23. position: relative;
  24. transform-style: preserve-3d;
  25. animation: rotate 10s linear infinite;
  26. }
  27. .cube:after {
  28. content: '';
  29. width: 100%;
  30. height: 100%;
  31. box-shadow: 0 0 50px rgba(0, 0, 0, 0.2);
  32. position: absolute;
  33. transform-origin: bottom;
  34. transform-style: preserve-3d;
  35. transform: rotateX(90deg) translateY(50px) translateZ(-50px);
  36. background-color: rgba(0, 0, 0, 0.1);
  37. }
  38. .cube div {
  39. background-color: rgba(64, 158, 255, 0.7);
  40. position: absolute;
  41. width: 100%;
  42. height: 100%;
  43. border: 1px solid rgb(27, 99, 170);
  44. box-shadow: 0 0 60px rgba(64, 158, 255, 0.7);
  45. }
  46. .cube div:nth-child(1) {
  47. transform: translateZ(-50px);
  48. animation: shade 10s -5s linear infinite;
  49. }
  50. .cube div:nth-child(2) {
  51. transform: translateZ(50px) rotateY(180deg);
  52. animation: shade 10s linear infinite;
  53. }
  54. .cube div:nth-child(3) {
  55. transform-origin: right;
  56. transform: translateZ(50px) rotateY(270deg);
  57. animation: shade 10s -2.5s linear infinite;
  58. }
  59. .cube div:nth-child(4) {
  60. transform-origin: left;
  61. transform: translateZ(50px) rotateY(90deg);
  62. animation: shade 10s -7.5s linear infinite;
  63. }
  64. .cube div:nth-child(5) {
  65. transform-origin: bottom;
  66. transform: translateZ(50px) rotateX(90deg);
  67. background-color: rgba(0, 0, 0, 0.7);
  68. }
  69. .cube div:nth-child(6) {
  70. transform-origin: top;
  71. transform: translateZ(50px) rotateX(270deg);
  72. }
  73. @keyframes rotate {
  74. 0% {
  75. transform: rotateX(-15deg) rotateY(0deg);
  76. }
  77. 100% {
  78. transform: rotateX(-15deg) rotateY(360deg);
  79. }
  80. }
  81. @keyframes shade {
  82. 50% {
  83. background-color: rgba(0, 0, 0, 0.7);
  84. }
  85. }
  86. </style>
  87. <title>demo</title>
  88. </head>
  89. <body>
  90. <div class="cube">
  91. <div></div>
  92. <div></div>
  93. <div></div>
  94. <div></div>
  95. <div></div>
  96. <div></div>
  97. </div>
  98. </body>
  99. </html>