div+css实现多彩形状烟花绽放动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现多彩形状烟花绽放动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
@property --tx {
syntax: "<length-percentage>";
initial-value: 0%;
inherits: true;
}
@property --sf {
syntax: "<number>";
initial-value: 0;
inherits: true;
}
html {
overflow: hidden;
}
body {
background: #17223b;
}
body {
--property-test: block ;
}
div {
position: absolute;
}
.bang {
--sf: 1;
top: var(--y);
left: var(--x);
scale: var(--sf);
}
.ring {
--tx: 9.5em;
filter: drop-shadow(0 0 9px currentcolor);
-webkit-animation: var(--rz, ) tx 1.25s var(--te, cubic-bezier(0.32, 1, 0.68, 1)) infinite, sf 1.25s cubic-bezier(0.65, 1, 0.35, 1) infinite;
animation: var(--rz, ) tx 1.25s var(--te, cubic-bezier(0.32, 1, 0.68, 1)) infinite, sf 1.25s cubic-bezier(0.65, 1, 0.35, 1) infinite;
-webkit-animation-delay: calc(var(--df)*1.25s + var(--dt, 0s));
animation-delay: calc(var(--df)*1.25s + var(--dt, 0s));
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
.dots {
--tx: 6.5em;
--rz: rz 1.25s linear infinite, ;
--dt: calc((var(--idx) + 2.5)*0.1875s) ;
}
.rays {
--tx: 13em;
--te: cubic-bezier(.25, 0, .75, 0) ;
}
.star {
--dt: calc((var(--idx) - 1)*-0.25s) ;
}
.item {
height: 0.5em;
aspect-ratio: 1;
border-radius: 50%;
transform: translate(-50%, -50%) rotate(calc(var(--k)/var(--n)*1turn)) translate(var(--tx)) scale(var(--sf));
background: currentcolor;
}
.rays .item {
aspect-ratio: 10;
}
.star .item {
height: 2em;
-webkit-clip-path: polygon(97.5528258148% 50%, 74.0444026342% 67.4692810742%, 64.6946313073% 95.2254248594%, 40.8158554329% 78.2658905371%, 11.5289557853% 77.9508497187%, 20.2794838658% 50%, 11.5289557853% 22.0491502813%, 40.8158554329% 21.7341094629%, 64.6946313073% 4.7745751406%, 74.0444026342% 32.5307189258%);
clip-path: polygon(97.5528258148% 50%, 74.0444026342% 67.4692810742%, 64.6946313073% 95.2254248594%, 40.8158554329% 78.2658905371%, 11.5289557853% 77.9508497187%, 20.2794838658% 50%, 11.5289557853% 22.0491502813%, 40.8158554329% 21.7341094629%, 64.6946313073% 4.7745751406%, 74.0444026342% 32.5307189258%);
}
@-webkit-keyframes tx {
0%, 50% {
--tx: 0% ;
}
}
@keyframes tx {
0%, 50% {
--tx: 0% ;
}
}
@-webkit-keyframes rz {
0% {
rotate: 0deg;
}
100% {
rotate: calc((2*var(--idx) - 1)*.25turn);
}
}
@keyframes rz {
0% {
rotate: 0deg;
}
100% {
rotate: calc((2*var(--idx) - 1)*.25turn);
}
}
@-webkit-keyframes sf {
0%, 50%, 100% {
--sf: 0 ;
}
75% {
--sf: 1 ;
}
}
@keyframes sf {
0%, 50%, 100% {
--sf: 0 ;
}
75% {
--sf: 1 ;
}
}
/* support info box styling */
/* for reference:
* https://twitter.com/anatudor/status/1601168779651997698 */
@property --property-test {
syntax: "<custom-ident>";
initial-value: none;
inherits: false;
}
.box {
position: fixed;
inset: auto 1vw 1vh;
margin: 0;
border-left: 5px solid #dc3055;
padding: 0.625em;
box-shadow: 2px 2px 5px gray;
background: #851d40;
color: #fff;
font: clamp(.625em, 4vw, 1.25em)/1.25 trebuchet ms, ubuntu, verdana, arial, sans-serif;
}
.box--info {
inset: 1vh 1vw auto;
border-color: #4e8d7c;
background: #045762;
}
.box--property {
display: var(--property-test);
}
code {
padding: 2px;
background: rgba(0, 0, 0, 0.2);
font: 1.1em/1.2 ubuntu mono, consolas, monaco, monospace;
}
a {
color: gold;
}
</style>
</head>
<body style="--n: 16">
<style>.item:nth-child(1) { --k: 0 }.item:nth-child(2) { --k: 1 }.item:nth-child(3) { --k: 2 }.item:nth-child(4) { --k: 3 }.item:nth-child(5) { --k: 4 }.item:nth-child(6) { --k: 5 }.item:nth-child(7) { --k: 6 }.item:nth-child(8) { --k: 7 }.item:nth-child(9) { --k: 8 }.item:nth-child(10) { --k: 9 }.item:nth-child(11) { --k: 10 }.item:nth-child(12) { --k: 11 }.item:nth-child(13) { --k: 12 }.item:nth-child(14) { --k: 13 }.item:nth-child(15) { --k: 14 }.item:nth-child(16) { --k: 15 }
</style>
<div class="bang" style="color: #86ed88; --x: 30%; --y: 25%; --df: -0.57">
<div class="ring dots" style="--idx: 0">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="ring dots" style="--idx: 1">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="ring rays" style="color: #4069ff">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="ring star" style="--idx: 0; color: #4069ff">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="ring star" style="--idx: 1">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
<div class="bang" style="color: #28e5f2; --x: 50%; --y: 50%; --df: -0.43; --sf: 0.875">
<div class="ring dots" style="--idx: 0; color: #c1d752">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="ring rays">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="ring star" style="--idx: 0">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="ring star" style="--idx: 1">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div&g.........完整代码请登录后点击上方下载按钮下载查看
网友评论0