div+css实现万圣节夜晚森林中独行动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现万圣节夜晚森林中独行动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css2?family=Nosifer&display=swap" rel="stylesheet">
<style>
:root {
--bg1: #101974;
--bg2: #131e86;
}
/***********************/
/***********************/
*,
*::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: "Nosifer", cursive;
color: #ffffff;
}
/***********************/
/***********************/
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
width: 100%;
overflow: hidden;
background-color: #131e86;
}
.main {
width: 120vmin;
height: 90vmin;
background-image: linear-gradient(to top, var(--bg1), var(--bg2));
overflow: hidden;
animation: colors linear 12000ms infinite;
}
@keyframes colors {
0%, 50%, 52%, 54%, 100% {
--bg1: #131e86;
}
51%, 53% {
--bg1: #222d93;
}
}
.start {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
width: 100%;
height: 100%;
transition: all 2000ms;
background-color: #131e86;
cursor: pointer;
}
.start h1 {
font-size: 9vmin;
text-transform: capitalize;
animation: start 500ms linear infinite alternate;
}
@keyframes start {
to {
opacity: 0.5;
}
}
.is-start-visible {
opacity: 0;
}
.is-start-hidden {
display: none;
}
.fog {
position: absolute;
width: 100%;
height: 100%;
box-shadow: inset 0 0 6vmin 6.75vmin #131e86;
cursor: none;
}
.layer {
display: flex;
align-items: flex-end;
position: relative;
width: 100%;
height: 100%;
}
.slider {
position: absolute;
width: 100%;
height: 100%;
}
.tree {
position: absolute;
bottom: 0;
}
.owl {
position: absolute;
width: 6vmin;
height: 9vmin;
transform-origin: bottom;
}
.owl .head {
position: absolute;
width: 4.5vmin;
height: 4.5vmin;
border-radius: 50%;
background-color: #14146f;
animation: head 4000ms linear infinite alternate;
}
.owl .head::before, .owl .head::after {
content: "";
position: absolute;
top: 40%;
width: 0.75vmin;
height: 0.75vmin;
border-radius: 100% 0% 100% 0%/100% 0% 100% 0%;
background-color: #999999;
animation: owl linear 10000ms infinite;
}
.owl .head::before {
left: 22%;
border-radius: 0% 100% 0% 100%/0% 100% 0% 100%;
}
.owl .head::after {
right: 22%;
border-radius: 100% 0% 100% 0%/100% 0% 100% 0%;
}
.owl .body {
position: absolute;
width: 6vmin;
height: 6vmin;
bottom: 0;
border-radius: 56% 44% 63% 37%/45% 100% 0% 55%;
background-color: #14146f;
}
@keyframes owl {
0%, 50%, 54%, 58%, 82%, 100% {
background-color: #999999;
}
52%, 56%, 60%, 80% {
background-color: #14146f;
}
}
@keyframes head {
0%, 47% {
transform: rotateZ(0);
}
53%, 100% {
transform: rotateZ(45deg);
}
}
/***********************/
/***********************/
.moon {
position: absolute;
top: 8.25vmin;
left: 24vmin;
width: 6.75vmin;
height: 6.75vmin;
overflow: hidden;
background-image: radial-gradient(circle at 100% 25%, transparent 50%, #ffffff 50%);
border-radius: 50%;
}
.layer-01 .tree {
width: 4.5vmin;
height: 100%;
background-color: #131c81;
clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
}
.layer-01 .tree-01 {
left: 9.9vmin;
}
.layer-01 .tree-02 {
left: 33.3vmin;
}
.layer-01 .tree-03 {
left: 45vmin;
}
.layer-01 .tree-04 {
left: 74.25vmin;
}
.layer-01 .tree-05 {
left: 91.5vmin;
}
.slider-tree {
width: 300%;
display: flex;
justify-content: flex-end;
align-items: flex-end;
flex-wrap: nowrap;
filter: blur(0.3vmin);
}
.layer-tree {
width: 150%;
animation: layer 32000ms linear infinite;
}
.layer-tree .tree {
display: flex;
justify-content: center;
background-color: #17218e;
position: absolute;
}
.layer-tree .tree::before {
content: "";
position: absolute;
height: 100%;
width: 17%;
top: 15vmin;
border-top-left-radius: 3vmin;
border-top-right-radius: 3vmin;
background-image: linear-gradient(91deg, transparent 20%, #131c81 20%), linear-gradient(-91deg, transparent 20%, #131c81 20%);
background-size: 50%;
background-repeat: no-repeat;
background-position: 0 0, 100% 0;
}
.layer-tree .tree::after {
content: "";
position: absolute;
top: 35%;
right: 20%;
width: 17%;
height: 10%;
border-radius: 50%;
background-color: #1b26a4;
}
.layer-tree .tree-01,
.layer-tree .tree-02 {
height: 27vmin;
width: 18vmin;
bottom: 33vmin;
left: 75vmin;
border-radius: 50% 50% 48% 52%/60% 60% 40% 40%;
}
.layer-tree .tree-02 {
left: 135vmin;
height: 24vmin;
width: 18vmin;
}
.layer-tree .tree-03 {
height: 33vmin;
width: 21vmin;
bottom: 33vmin;
left: 3vmin;
border-radius: 50% 50% 48% 52%/60% 60% 40% 40%;
}
.layer-tree .tree-03::after {
content: "";
position: absolute;
left: 40%;
top: 50%;
transform-origin: bottom left;
width: 9vmin;
height: 9vmin;
background-color: #131c81;
clip-path: polygon(26% 59%, 42% 79%, 79% 79%.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0