div+css实现一个可旋转三维宇宙飞船效果代码
代码语言:html
所属分类:三维
代码描述:div+css实现一个可旋转三维宇宙飞船效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
/***********************/
/***********************/
/***********************/
*,
*::after,
*::before {
margin: 0;
padding: 0;
box-sizing: border-box;
transform-style: preserve-3d;
user-select: none;
-webkit-tap-highlight-color: transparent;
appearance: none;
font-family: "Press Start 2P", cursive;
}
/***********************/
/***********************/
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
width: 100%;
color: #1d88fe;
font-weight: bolder;
overflow: hidden;
cursor: pointer;
background-image: linear-gradient(to bottom, #1672da, #078dfd, #07b1ff, #00a2ed);
}
.face {
position: absolute;
}
.flex {
display: flex;
justify-content: center;
align-items: center;
}
/***********************/
/***********************/
.main {
position: absolute;
width: 48vmin;
height: 50vmin;
transform: perspective(600vmin) rotateX(60deg) rotateZ(30deg) translateZ(-16vmin);
transition: transform 550ms ease-out;
}
.wrapper-c1,
.wrapper-c2 {
width: 100%;
height: 100%;
position: absolute;
}
.wrapper-c1 {
animation: wrapper-c1 1500ms linear infinite;
}
.wrapper-c2 {
animation: wrapper-c2 1500ms linear infinite;
}
@keyframes wrapper-c1 {
0%, 10%, 90%, 100% {
transform: translateZ(1vmin);
}
45%, 55% {
transform: translateZ(4.5vmin);
}
}
@keyframes wrapper-c2 {
0%, 50%, 100% {
transform: rotateX(0) rotateY(0);
}
25% {
transform: rotateX(-4deg) rotateY(2deg);
}
75% {
transform: rotateX(6deg) rotateY(0);
}
}
.wrapper-a {
position: absolute;
width: 100%;
height: 100%;
transform: translateZ(2vmin);
}
.wrapper-b {
position: absolute;
left: 50%;
width: 19vmin;
height: 100%;
transform: translateX(-50%) translateZ(4vmin);
}
.shadows {
position: absolute;
width: 100%;
height: 100%;
animation: shadow 1500ms linear infinite;
}
@keyframes shadow {
0%, 10%, 90%, 100% {
opacity: 1;
transform: scale(1);
filter: blur(1.7vmin);
}
45%, 55% {
opacity: 0.75;
transform: scale(0.935);
filter: blur(2vmin);
}
}
.shadow {
position: absolute;
top: 0;
border-radius: 4vmin;
box-shadow: 0 0 4vmin #296ff0;
background-image: radial-gradient(rgba(4, 42, 112, 0.8) 40%, rgba(14, 79, 201, 0.8) 70%);
}
.shadow-1,
.shadow-2 {
width: 16vmin;
height: 34vmin;
}
.shadow-1 {
left: -1vmin;
}
.shadow-2 {
right: -1vmin;
}
.shadow-3 {
top: 8vmin;
left: 50%;
width: 22vmin;
height: 40vmin;
transform: translateX(-50%);
}
.shadow-4 {
top: 8vmin;
width: 100%;
height: 24vmin;
}
.shadow-5 {
top: 10vmin;
left: -15%;
width: 130%;
height: 8vmin;
}
.light-1,
.light-2,
.light-3,
.light-4 {
top: 28vmin;
width: 10vmin;
height: 48vmin;
border-radius: 50%;
box-shadow: 0 0 1vmin #9effff;
background-image: linear-gradient(to bottom, rgba(107, 255, 255, 0.185), rgba(107, 255, 255, 0.4) 20%, rgba(107, 255, 255, 0.25) 60%, rgba(107, 255, 255, 0.05));
}
.light-1 {
left: 0;
}
.light-2 {
right: 0;
}
.light-3,
.light-4 {
top: -20vmin;
width: 14vmin;
height: 32vmin;
animation: light 94ms linear alternate infinite;
}
.light-3 {
left: 0;
}
.light-4 {
right: 0;
}
@keyframes light {
to {
height: 30vmin;
transform: translateY(2vmin);
}
}
.wave {
position: absolute;
border-radius: 50%;
animation: wave-size 500ms linear infinite, wave-t 500ms linear infinite;
}
.wave-2 {
animation-delay: 100ms;
}
.wave-3 {
animation-delay: 200ms;
}
.wave-4 {
animation-delay: 300ms;
}
.wave-4 {
animation-delay: 400ms;
}
@keyframes wave-size {
0% {
width: 4vmin;
height: 4vmin;
border: 0.2vmin solid rgba(107, 255, 255, 0);
}
50% {
border: 0.6vmin solid rgba(107, 255, 255, 0.25);
}
75% {
border: 0.6vmin solid rgba(255, 255, 255, 0.25);
}
100% {
width: 20vmin;
height: 20vmin;
border: 0.8vmin solid rgba(255, 255, 255, 0);
}
}
@keyframes wave-t {
0% {
transform: translateZ(0);
}
100% {
transform: translateZ(28vmin);
}
}
.a {
width: 14vmin;
height: 32vmin;
position: absolute;
}
.a__front {
width: 14vmin;
height: 14vmin;
transform-origin: bottom left;
transform: rotateX(-90deg) translateZ(18vmin);
}
.a__back {
width: 14vmin;
height: 14vmin;
transform-origin: top left;
transform: rotateX(-90deg) rotateY(180deg) translateX(-14vmin) translateY(-14vmin);
}
.a__right {
width: 32vmin;
height: 14vmin;
transform-origin: top left;
transform: rotateY(90deg) rotateZ(-90deg) translateZ(14vmin) translateX(-32vmin) translateY(-14vmin);
}
.a__left {
width: 32vmin;
height: 14vmin;
transform-origin: top left;
transform: rotateY(-90deg) rotateZ(90deg) translateY(-14vmin);
}
.a__top {
width: 14vmin;
height: 32vmin;
transform-origin: top left;
transform: translateZ(14vmin);
}
.a__bottom {
width: 14vmin;
height: 32vmin;
transform-origin: top left;
transform: rotateY(180deg) translateX(-14vmin);
}
.a__front, .a__back {
background-position: 0 0, 0 100%, 100% 0, 100% 100%, 49% 0;
background-size: 10% 50%, 10% 50%, 10% 50%, 10% 50%, 82% 100%;
background-repeat: no-repeat;
}
.a__back {
box-shadow: inset 0 0 0 0.5vmin #6bffff;
border-radius: 2.3vmin;
}
.a__top::before, .a__top::after, .a__bottom::before, .a__bottom::after {
content: "";
position: absolute;
width: 2.2vmin;
height: 100%;
}
.a__top::before, .a__bottom::before .........完整代码请登录后点击上方下载按钮下载查看
















网友评论0