纯css布局实现一格三维3d烤面包机动画效果
代码语言:html
所属分类:动画
代码描述:纯css布局实现一格三维3d烤面包机动画效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
*,
*:after,
*:before {
box-sizing: border-box;
}
body {
min-height: 100vh;
background: #a3bac2;
overflow: hidden;
margin: 0;
padding: 0;
}
:root {
--toaster-width: 18;
--toaster-height: 10;
--toaster-depth: 12;
--toast-depth: 1;
--eye-size: 1.75vmin;
--feature: #0d0d0d;
--shadow: #404040;
--cloth-color-one: rgba(204,51,153,0.65);
--speed: 1;
--transition: 0.25;
--handle: #333;
--shade-one: #d9d9d9;
--shade-two: #bfbfbf;
--shade-three: #a6a6a6;
--shade-four: #8c8c8c;
--shade-five: #737373;
--shade-six: #595959;
--shine: rgba(255,255,255,0.5);
}
[type='checkbox'] {
position: absolute;
left: 100%;
opacity: 0;
height: 0;
width: 0;
}
.rotater {
position: fixed;
height: 10vmin;
width: 100vmax;
top: 0;
left: 0;
z-index: 2;
}
.rotater:hover ~ .scene .plane {
-webkit-animation: spin-y 1s infinite linear;
animation: spin-y 1s infinite linear;
}
.rotater--bottom {
-webkit-transform: translate(0, calc(100vh - 10vmin));
transform: translate(0, calc(100vh - 10vmin));
}
.rotater--bottom:hover ~ .scene .plane {
animation: spin-y 1s infinite reverse linear;
}
.rotater--left {
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
}
.rotater--left:hover ~ .scene .plane {
animation: spin-x 1s infinite reverse linear;
}
.rotater--right {
-webkit-transform: rotate(90deg) translate(0, calc(-100vw + 10vmin));
transform: rotate(90deg) translate(0, calc(-100vw + 10vmin));
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
}
.rotater--right:hover ~ .scene .plane {
-webkit-animation: spin-x 1s infinite linear;
animation: spin-x 1s infinite linear;
}
.scene {
-webkit-perspective: 800px;
perspective: 800px;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
height: 100vh;
width: 100vw;
display: -webkit-box;
display: flex;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
}
.plane {
height: 20vmin;
width: 40vmin;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transform: rotateX(-24deg) rotateY(-24deg) rotateX(90deg);
transform: rotateX(-24deg) rotateY(-24deg) rotateX(90deg);
}
.cube {
--width: 15;
--height: 10;
--depth: 4;
height: calc(var(--depth) * 1vmin);
width: calc(var(--width) * 1vmin);
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
position: absolute;
font-size: 1rem;
-webkit-animation: spin 1s infinite linear;
animation: spin 1s infinite linear;
-webkit-transform: translate3d(0, 0, 5vmin);
transform: translate3d(0, 0, 5vmin);
}
.cube > div:nth-of-type(1) {
height: calc(var(--height) * 1vmin);
width: 100%;
-webkit-transform-origin: 50% 50%;
transform-origin: 50% 50%;
-webkit-transform: rotateX(-90deg);
transform: rotateX(-90deg);
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%) rotateX(-90deg) translate3d(0, 0, calc((var(--depth) / 2) * 1vmin));
transform: translate(-50%, -50%) rotateX(-90deg) translate3d(0, 0, calc((var(--depth) / 2) * 1vmin));
}
.cube > div:nth-of-type(2) {
height: calc(var(--height) * 1vmin);
width: 100%;
-webkit-transform-origin: 50% 50%;
transform-origin: 50% 50%;
-webkit-transform: translate(-50%, -50%) rotateX(-90deg) rotateY(180deg) translate3d(0, 0, calc((var(--depth) / 2) * 1vmin));
transform: translate(-50%, -50%) rotateX(-90deg) rotateY(180deg) translate3d(0, 0, calc((var(--depth) / 2) * 1vmin));
position: absolute;
top: 50%;
left: 50%;
}
.cube > div:nth-of-type(3) {
height: calc(var(--height) * 1vmin);
width: calc(var(--depth) * 1vmin);
-webkit-transform: translate(-50%, -50%) rotateX(-90deg) rotateY(90deg) translate3d(0, 0, calc((var(--width) / 2) * 1vmin));
transform: translate(-50%, -50%) rotateX(-90deg) rotateY(90deg) translate3d(0, 0, calc((var(--width) / 2) * 1vmin));
.........完整代码请登录后点击上方下载按钮下载查看
网友评论0