div+css实现彩色三维搭积木效果代码
代码语言:html
所属分类:三维
代码描述:div+css实现彩色三维搭积木效果代码,四周按钮点击悬浮可旋转角度,积木中间方块可点击抽出。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
:root {
--rotation: 0deg;
--translaY: 0vmin;
--translaX: 0vmin;
--translaZ: 0vmin;
}
* {
transform-style: preserve-3d;
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
perspective: 100vmin;
background: radial-gradient(circle at 50% 50%, #333, #000);
max-width: 90vmin;
margin: 0 auto;
}
.content {
width: 30vmin;
height: 90vmin;
display: flex;
align-items: flex-end;
justify-content: center;
transform: rotateX(-15deg) rotateY(45deg) scale3d(0.75,0.75,0.75);
transition: all 0.5s ease 0s;
}
.cuboid {
--height: 5;
--width: 10;
--depth: 30;
--hue: 0;
--sat: 60%;
height: calc(var(--height) * 1vmin);
width: calc(var(--width) * 1vmin);
position: absolute;
transform: translate3d(0vmin, 0vmin, 0vmin);
transform: translateX(var(--translaX)) translateY(var(--translaY))
translateZ(var(--translaZ)) rotateY(var(--rotation));
transition: --translaZ 1.5s ease 0s, --translaX 1.5s ease 0s;
}
.cuboid .side {
position: absolute;
top: 50%;
left: 50%;
height: 100%;
width: 100%;
border-radius: 2px;
}
.cuboid .side:nth-of-type(1) {
transform: translate3d(-50%, -50%, calc(var(--depth) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 60%);
}
.cuboid .side:nth-of-type(2) {
transform: translate3d(-50%, -50%, calc(var(--depth) * -0.5vmin))
rotateY(180deg);
background: hsl(var(--hue), var(--sat), 25%);
}
.cuboid .side:nth-of-type(3) {
width: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateY(90deg)
translate3d(0, 0, calc(var(--width) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 75%);
}
.cuboid .side:nth-of-type(4) {
width: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateY(-90deg)
translate3d(0, 0, calc(var(--width) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 40%);
}
.cuboid .side:nth-of-type(5) {
height: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateX(90deg)
translate3d(0, 0, calc(var(--height) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 75%);
}
.cuboid .side:nth-of-type(6) {
height: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateX(-90deg)
translate3d(0, 0, calc(var(--height) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 20%);
}
/*** colors ***/
.cuboid:nth-child(10n + 2) {
--hue: 72;
}
.cuboid:nth-child(10n + 3) {
--hue: 144;
}
.cuboid:nth-child(10n + 4) {
--hue: 216;
}
.cuboid:nth-child(10n + 5) {
--hue: 288;
}
.cuboid:nth-child(10n + 6) {
--hue: 36;
}
.cuboid:nth-child(10n + 7) {
--hue: 108;
}
.cuboid:nth-child(10n + 8) {
--hue: 180;
}
.cuboid:nth-child(10n + 9) {
--hue: 252;
}
.cuboid:nth-child(10n + 10) {
--hue: 324;
}
/*** positions ***/
/* ROW 1 */
.cuboid:nth-child(2) {
--translaX: -10vmin;
}
.cuboid:nth-child(3) {
--translaX: 10vmin;
}
/* ROW 2 */
.cuboid:nth-child(1n + 4) {
--translaY: -5vmin;
--width: 30;
--depth: 10;
}
.cuboid:nth-child(5) {
--translaZ: -10vmin;
}
.cuboid:nth-child(6) {
--translaZ: 10vmin;
}
/* ROW 3 */
.cuboid:nth-child(1n + 7) {
--translaY: -10vmin;
--depth: 30;
--width: 10;
}
.cuboid:nth-child(8) {
--translaX: -10vmin;
}
.cuboid:nth-child(9) {
--translaX: 10vmin;
}
/* ROW 4 */
.cuboid:nth-child(1n + 10) {
--translaY: -15vmin;
--width: 30;
--depth: 10;
}
.cuboid:nth-child(11) {
--translaZ: -10vmin;
}
.cuboid:nth-child(12) {
--translaZ: 10vmin;
}
/* ROW 5 */
.cuboid:nth-child(1n + 13) {
--translaY: -20vmin;
--depth: 30;
--width: 10;
}
.cuboid:nth-child(14) {
--translaX: -10vmin;
}
.cuboid:nth-child(15) {
--translaX: 10vmin;
}
/* ROW 6 */
.cuboid:nth-child(1n + 16) {
--translaY: -25vmin;
--width: 30;
--depth: 10;
}
.cuboid:nth-child(17) {
--translaZ: -10vmin;
}
.cuboid:nth-child(18) {
--translaZ: 10vmin;
}
/* ROW 7 */
.cuboid:nth-child(1n + 19) {
--translaY: -30vmin;
--depth: 30;
--width: 10;
}
.cuboid:nth-child(20) {
--translaX: -10vmin;
}
.cuboid:nth-child(21) {
--translaX: 10vmin;
}
/* ROW 8 */
.cuboid:nth-child(1n + 22) {
--translaY: -35vmin;
--width: 30;
--depth: 10;
}
.cuboid:nth-child(23) {
--translaZ: -10vmin;
}
.cuboid:nth-child(24) {
--translaZ: 10vmin;
}
/* ROW 9 */
.cuboid:nth-child(1n + 25) {
--translaY: -40vmin;
--depth: 30;
--width: 10;
}
.cuboid:nth-child(26) {
--translaX: -10vmin;
}
.cuboid:nth-child(27) {
--translaX: 10vmin;
}
/* ROW 10 */
.cuboid:nth-child(1n + 28) {
--translaY: -45vmin;
--width: 30;
--depth: 10;
}
.cuboid:nth-child(29) {
--translaZ: -10vmin;
}
.cuboid:nth-child(30) {
--translaZ: 10vmin;
}
/* ROW 11 */
.cuboid:nth-child(1n + 31) {
--translaY: -50vmin;
--depth: 30;
--width: 10;
}
.cuboid:nth-child(32) {
--translaX: -10vmin;
}
.cuboid:nth-child(33) {
--translaX: 10vmin;
}
/* ROW 12 */
.cuboid:nth-child(1n + 34) {
--translaY: -55vmin;
--width: 30;
--depth: 10;
}
.cuboid:nth-child(35) {
--translaZ: -10vmin;
}
.cuboid:nth-child(36) {
--translaZ: 10vmin;
}
/* ROW 13 */
.cuboid:nth-child(1n + 37) {
--translaY: -60vmin;
--depth: 30;
--width: 10;
}
.cuboid:nth-child(38) {
--translaX: -10vmin;
}
.cuboid:nth-child(39) {
--translaX: 10vmin;
}
/* ROW 14 */
.cuboid:nth-child(1n + 40) {
--translaY: -65vmin;
--width: 30;
--dept.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0