css实现骰子色子3d旋转动画效果代码
代码语言:html
所属分类:动画
代码描述:css实现骰子色子3d旋转动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<style>
* {
border: 0;
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--hue: 223;
--sat: 10%;
--white: hsl(0,0%,100%);
--light-gray1: hsl(var(--hue),var(--sat),95%);
--light-gray2: hsl(var(--hue),var(--sat),90%);
--light-gray4: hsl(var(--hue),var(--sat),80%);
--gray: hsl(var(--hue),var(--sat),50%);
--dark-gray6: hsl(var(--hue),var(--sat),20%);
--dark-gray8: hsl(var(--hue),var(--sat),10%);
--dark-gray9: hsl(var(--hue),var(--sat),5%);
--red1: hsl(0,90%,60%);
--red2: hsl(0,90%,50%);
--trans-dur: 0.3s;
color-scheme: light dark;
font-size: clamp(1rem,0.9rem + 0.5vw,1.5rem);
}
body {
background-color: light-dark(var(--white), var(--dark-gray8));
color: light-dark(var(--dark-gray8), var(--light-gray2));
display: flex;
font: 1em/1.5 sans-serif;
height: 100vh;
transition: background-color var(--trans-dur), color var(--trans-dur);
}
.dice {
--dur: 3s;
--size: 5em;
--size-half: calc(var(--size) / 2 - 0.5px);
margin: auto;
perspective: 800px;
position: relative;
width: var(--size);
height: var(--size);
}
.dice__dot, .dice__side, .dice__side:before, .dice__side:after, .dice__sides {
animation-duration: var(--dur);
animation-timing-function: linear;
animation-iteration-count: infinite;
}
.dice__dot {
animation-name: dice-dot-lighting, dice-dot-rotate;
background-color: var(--white);
box-shadow: 0 calc(var(--size) * 0.05) calc(var(--size) * 0.05) calc(var(--size) * 0.0625) var(--dark-gray9) inset;
border-radius: 50%;
width: 80%;
height: 80%;
}
.dice__side {
animation-name: dice-lighting;
backface-visibility: hidden;
background-color: var(--light-gray2);
box-shadow: 0 0 calc(var(--size) * 0.1) calc(var(--size) * 0.05) var(--white) inset;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
padding: 12.5%;
position: absolute;
top: 0;
left: 0;
transition: background-color var(--trans-dur);
}
.dice__side:before, .dice__side:after {
background-image: linear-gradient(90deg, transparent 90%, var(--gray) 120%);
content: "";
display: block;
position: absolute;
inset: 0;
}
.dice__side:before {
transform: rotate(90deg);
}
.dice__side:after {
animation-name: dice-shadow;
opacity: 0;
}
.dice__side, .dice__sides {
width: 100%;
height: 100%;
}
.dice__sides {
animation-name: dice-rotate;
transform: rotateX(-30deg) rotateY(-45deg);
transform-style: preserve-3d;
}
.dice__side--1 {
transform: translate3d(0, 0, var(--size-half));
}
.dice__side--2 {
transform: rotateY(-90deg) translate3d(0, 0, var(--size-half));
}
.dice__side--2, .dice__side--2:after {
animation-delay: calc(var(--dur) * -0.25);
}
.dice__side--3 {
box-shadow:.........完整代码请登录后点击上方下载按钮下载查看
网友评论0