css+div实现彩色三维滚筒棒滚下来动画效果代码
代码语言:html
所属分类:动画
代码描述:css+div实现彩色三维滚筒棒滚下来动画效果代码
代码标签: css div 彩色 三维 滚筒棒 滚下来 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
*, *::before, *::after {
padding: 0;
margin: 0 auto;
box-sizing: border-box;
}
body {
background-color: #111;
color: #fff;
min-height: 100vh;
display: grid;
place-items: center;
perspective: 40em;
overflow: hidden;
font-size: 2vh;
* {
transform-style: preserve-3d;
}
}
.scene {
position: relative;
-webkit-animation: scene 60s infinite linear;
animation: scene 60s infinite linear;
--duration: 4s;
}
@-webkit-keyframes scene {
to { rotate: y -1turn; }
}
@keyframes scene {
to { rotate: y -1turn; }
}
.mainStick {
--angle: asin(3/5);
position: absolute;
inset: -0px -10em;
background-color: #fff;
-webkit-animation: poleBase var(--duration) infinite ease-in;
animation: poleBase var(--duration) infinite ease-in;
.stick {
position: absolute;
inset: 0em;
background-color: #f00;
-webkit-animation: poleTranslate var(--duration) calc(var(--duration) * -0) infinite cubic-bezier(.4,0,.6,2.3);
animation: poleTranslate var(--duration) calc(var(--duration) * -0) infinite cubic-bezier(.4,0,.6,2.3);
i {
position: absolute;
inset: -0.4em -3em;
background-color: hsl(0 0% calc((sin(var(--i) * 45deg) + 1) * 40% + 20%) );
box-shadow: 0 0 0.5em #0005 inset;
transform: translateY(-2em) rotateX(calc(var(--i) * 45deg)) translateZ(0.95em);
}
}
}
@-webkit-keyframes poleBase {
0% {
transform-origin: right;
transform: translate(-2em, 0em) rotate(calc(var(--angle) * -1));
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out;
}
4% {
transform-origin: right;
transform: translate(-2em, 0em) rotate(calc(var(--angle) * -0.9));
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
}
10% {
transform-origin: right;
transform: translate(-2em, 0em) rotate(calc(var(--angle) * -1));
}
25% {
transform-origin: left;
transform: translate(2em, 12em) rotate(calc(var(--angle) * -1));
}
50% {
transform-origin: left;
transform: translate(2em, 12em) rotate(var(--angle));
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out;
}
54% {
transform-origin: left;
transform: translate(2em, 12em) rotate(calc(var(--angle) * 0.9));
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
}
60% {
transform-origin: left;
transform: translate(2em, 12em) rotate(var(--angle));
}
75% {
transform-origin: right;
transform: translate(-2em, 24em) rotate(var(--angle));
}
100% {
transform-origin: right;
transform: translate(-2em, 24em) rotate(calc(var(--angle) * -1));
}
0% { translate: 0 0; -webkit-animation-timing-function: linear; animation-timing-function: linear; }
100% { translate: 0 -24em; }
}
@keyframes poleBase {
0% {
transform-origin: right;
transform: translate(-2em, 0em) rotate(calc(var(--angle) * -1));
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out;
}
4% {
transform-origin: right;
transform: translate(-2em, 0em) rotate(calc(var(--angle) * -0.9));
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
}
10% {
transform-origin: right;
transform: translate(-2em, 0em) rotate(calc(var(--angle) * -1));
}
25% {
transform-origin: left;
transform: translate(2.........完整代码请登录后点击上方下载按钮下载查看
网友评论0