css实现三维骰子点击旋转效果代码
代码语言:html
所属分类:三维
代码描述:css实现三维骰子点击旋转效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
body {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
background-color: #ececec;
margin: 0;
}
.center {
position: absolute;
left: 50%;
top: 50%;
margin-left: -180px;
margin-top: -230px;
}
.grid {
position: relative;
display: grid;
grid-template-columns: 100px 100px 100px;
grid-template-rows: 280px 100px 20px;
grid-column-gap: 20px;
grid-row-gap: 30px;
border-radius: 10px;
}
.grid .dice {
grid-row: 1;
grid-column: 1 / -1;
}
.grid .y-radio,
.grid .y-degree,
.grid .y-arrow {
grid-row: 2;
grid-column: 1;
}
.grid .z-radio,
.grid .z-degree,
.grid .z-arrow {
grid-row: 2;
grid-column: 2;
}
.grid .x-radio,
.grid .x-degree,
.grid .x-arrow {
grid-row: 2;
grid-column: 3;
}
.grid .radio {
margin: 0;
width: 100%;
height: 100%;
opacity: 0;
z-index: 5;
cursor: pointer;
}
.grid .degree {
border-radius: 10px;
color: #6f9ceb;
font-weight: 900;
font-size: 1.5em;
width: 100%;
height: 100%;
z-index: 3;
box-sizing: border-box;
align-items: center;
justify-content: center;
}
.grid .label {
text-align: center;
grid-column: 1 / -1;
}
.degree,
.radio {
display: none;
}
.y-radio[value="1"],
.y-radio[value="1"]:checked ~ .y-radio[value="2"],
.y-radio[value="2"]:checked ~ .y-radio[value="3"],
.y-radio[value="3"]:checked ~ .y-radio[value="4"] {
display: block;
}
.z-radio[value="1"],
.z-radio[value="1"]:checked ~ .z-radio[value="2"],
.z-radio[value="2"]:checked ~ .z-radio[value="3"],
.z-radio[value="3"]:checked ~ .z-radio[value="4"] {
display: block;
}
.x-radio[value="1"],
.x-radio[value="1"]:checked ~ .x-radio[value="2"],
.x-radio[value="2"]:checked ~ .x-radio[value="3"],
.x-radio[value="3"]:checked ~ .x-radio[value="4"] {
display: block;
}
.y-radio[value="1"]:checked ~ .y-radio:hover ~ #y1,
.y-radio:hover ~ .y-radio[value="1"]:checked ~ #y1 {
display: flex;
}
.y-radio[value="2"]:checked ~ .y-radio:hover ~ #y2,
.y-radio:hover ~ .y-radio[value="2"]:checked ~ #y2 {
display: flex;
}
.y-radio[value="3"]:checked ~ .y-radio:hover ~ #y3,
.y-radio:hover ~ .y-radio[value="3"]:checked ~ #y3 {
display: flex;
}
.y-radio[value="4"]:checked ~ .y-radio:hover ~ #y4,
.y-radio:hover ~ .y-radio[value="4"]:checked ~ #y4 {
display: flex;
}
.z-radio[value="1"]:checked ~ .z-radio:hover ~ #z1,
.z-radio:hover ~ .z-radio[value="1"]:checked ~ #z1 {
display: flex;
}
.z-radio[value="2"]:checked ~ .z-radio:hover ~ #z2,
.z-radio:hover ~ .z-radio[value="2"]:checked ~ #z2 {
display: flex;
}
.z-radio[value="3"]:checked ~ .z-radio:hover ~ #z3,
.z-radio:hover ~ .z-radio[value="3"]:checked ~ #z3 {
display: flex;
}
.z-radio[value="4"]:checked ~ .z-radio:hover ~ #z4,
.z-radio:hover ~ .z-radio[value="4"]:checked ~ #z4 {
display: flex;
}
.x-radio[value="1"]:checked ~ .x-radio:hover ~ #x1,
.x-radio:hover ~ .x-radio[value="1"]:checked ~ #x1 {
display: flex;
}
.x-radio[value="2"]:checked ~ .x-radio:hover ~ #x2,
.x-radio:hover ~ .x-radio[value="2"]:checked ~ #x2 {
display: flex;
}
.x-radio[value="3"]:checked ~ .x-radio:hover ~ #x3,
.x-radio:hover ~ .x-radio[value="3"]:checked ~ #x3 {
display: flex;
}
.x-radio[value="4"]:checked ~ .x-radio:hover ~ #x4,
.x-radio:hover ~ .x-radio[value="4"]:checked ~ #x4 {
display: flex;
}
.dice {
display: flex;
justify-content: center;
align-items: center;
transform-origin: center center;
transform-style: preserve-3d;
transition: transform 1s;
}
.dice .box {
transform-style: preserve-3d;
width: 150px;
height: 150px;
position: relative;
}
.dice .box svg {
background-color: white;
border: 2px solid #0059b3;
fill: #003366;
position: absolute;
border-radius: 10px;
width: 150px;
height: 150px;
}
.dice .box .front {
transform: translateX(-75px) translateZ(75px);
}
.dice .box .back {
transform: translateX(-75px) rotateX(180deg) translateZ(75px);
}
.dice .box .right {
transform: translateX(-75px) rotateY(90deg) translateZ(75px);
}
.dice .box .left {
transform: translateX(-75px) rotateY(-90deg) translateZ(75px);
}
.dice .box .top {
transform: translateX(-75px) rotateX(90deg) translateZ(75px);
}
.dice .box .bottom {
transform: translateX(-75px) rotateX(-90deg) translateZ(75px);
}
.arrow {
position: relative;
transform-origin: center center;
transform-style: preserve-3d;
transition: transform 1s;
display: flex;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
}
.arrow .head {
position: absolute;
transform: translateZ(40px);
width: 0;
height: 0;
border-left: 25px solid transparent;
border-right: 25px solid transparent;
border-bottom.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0