You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
3.6 KiB
208 lines
3.6 KiB
/*
|
|
椭圆会使内部失真 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;
|
|
}
|
|
|