/* 椭圆会使内部失真 transform: rotateX(50deg); */ .rotation3D { position: relative; width: 800px; height: 800px; cursor: move; user-select: none; margin: 0 auto; margin-top: -120px; margin-left: 275px; } .rotation3D .center { display: none; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } .rotation3D .itemList { position: absolute; width: 100%; height: 100%; z-index: 20; } .rotation3D .lineList { position: absolute; width: 100%; height: 100%; z-index: 10; transform-style: preserve-3d; } /*---------------------------点样式---------------------------*/ .rotation3D__item { position: relative; display: block; cursor: pointer; width: 210px; /* height: 230px; */ text-align: center; line-height: 30px; font-size: 16px; color: white; z-index: 999 !important; /*background: #2292ef; border-radius: 4px;*/ } .rotation3D__item .scale { width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; } .rotation3D__item .cont { width: 146px; height: 146px; position: relative; } .rotation3D__item .iconfont { width: 50px; height: 50px; } .rotation3D__item .cont p { color: #fff; } /*底座*/ .rotation3D__item .baseImg { width: 210px; height: 118px; z-index: 998; background: url("../images/item-bottom.png"); background-size: 100%; display: flex; align-items: center; flex-direction: column; } /*--------------------------- 线样式 线高为总高的一般 ---------------------------*/ .rotation3D__line { position: absolute; left: 50%; top: 50%; display: block; width: 2px; height: 50%; padding-top: 60px; color: #fff; font-size: 50px; /*background: #fff;*/ /*原点设置在中间*/ transform-origin: 50% 0; transform-style: preserve-3d; } .rotation3D__line .pos { position: absolute; top: 0; } .rotation3D__line svg { position: absolute; top: 0; } .rotation3D__line svg path { stroke: #fff; fill: none; stroke-width: 3; animation: path-animation 100s linear 0s infinite normal; } @keyframes path-animation { 0% { stroke-dashoffset: 500; } 100% { stroke-dashoffset: 0; } } .rotation3D__line .dot { position: absolute; top: 0; left: 0; text-align: center; /*width: 35px; height: 35px; font-size: 35px; */ width: 24px; height: 24px; font-size: 24px; } .rotation3D__line .dot1, .rotation3D__line .dot3, .rotation3D__line .dot4 { animation: svg-path-animation 6s ease-in-out 0s infinite normal; } .rotation3D__line .dot1 { offset-path: path("M0 400, 0 0"); offset-distance: 0%; } .rotation3D__line .dot2 { offset-path: path("M0 200, 0 0"); offset-distance: 0%; background: #ffd200; border-radius: 100%; font-size: 22px; color: #000; } .rotation3D__line .dot3 { offset-path: path("M20 400 S 0 200, 20 0"); offset-distance: 0%; } .rotation3D__line .dot4 { offset-path: path("M20 0 S 40 200, 20 400"); offset-distance: 0%; } @keyframes svg-path-animation { from { offset-distance: 0%; } to { offset-distance: 100%; } } /*颜色*/ .rotation3D__line.blue { color: #07b2f9; } .rotation3D__line.green { color: #00ff5b; } .rotation3D__line.yellow { color: #ffd500; } .rotation3D__line.blue svg path { stroke: #07b2f9; } .rotation3D__line.green svg path { stroke: #00ff5b; } .rotation3D__line.yellow svg path { stroke: #ffd500; }