js+svg实现下雪动画效果代码
代码语言:html
所属分类:动画
代码描述:js+svg实现下雪动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
.snow-container {
position: fixed;
inset: 0;
overflow: hidden;
touch-action: none;
pointer-events: none;
}
@-webkit-keyframes flake {
0% {
transform: translate(var(--x-start), var(--y-start)) rotate(0);
}
100% {
transform: translate(var(--x-end), var(--y-end)) rotate(50deg);
}
}
@keyframes flake {
0% {
transform: translate(var(--x-start), var(--y-start)) rotate(0);
}
100% {
transform: translate(var(--x-end), var(--y-end)) rotate(50deg);
}
}
.snowflake {
--sz: 1rem;
--blur: 2px;
--a: 0.8;
--x-start: 50vw;
--x-end: 0;
--y-start: -25vh;
--y-end: 100vh;
position: absolute;
width: 200px;
height: 200px;
font-size: var(--sz);
filter: url(#circleBlur4);
-webkit-animation: flake 20s linear infinite;
animation: flake 20s linear infinite;
-webkit-animation-delay: var(--delay);
animation-delay: var(--delay);
transform: translate(var(--x-start), -15vh) rotate(0);
opacity: var(--a);
z-index: 1000;
}
.snowflake--m {
--sz: 2rem;
z-index: 2000;
filter: unset;
}
.snowflake--l {
--sz: 3rem;
z-index: 3000;
}
.snowflake--xl {
--sz: 6rem;
filter: url(#circleBlur40);
z-index: 4000;
}
html {
--surface: hsl(200 10% 10%);
--text: hsl(200 5% 80%);
--hero-h: calc(100vh - 40px);
background-color: var(--surface);
color: var(--text);
}
body {
min-block-size: 100%;
min-inline-size: 100%;
margin: 0;
box-sizing: border-box;
font-family: system-ui, sans-serif;
overflow-y: auto;
}
</style>
</head>
<body>
<div class="snow-container"></div>
<svg width="0" viewBox="0 0 600 600" xmlns="http://www.w3.org/2000/svg">
<defs>
<filter id="circleBlur40" x="-20%" y="-20%" width="140%" height="140%" color-interpolation-filters="sRGB"><feOffset dx="40" dy="0" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o0" result="cT0"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="39" dy="8" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o1" result="cT1"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="37" dy="16" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o2" result="cT2"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="32" dy="24" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o3" result="cT3"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="27" dy="30" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o4" result="cT4"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="20" dy="35" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o5" result="cT5"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="12" dy="38" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o6" result="cT6"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="4" dy="40" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o7" result="cT7"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-4" dy="40" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o8" result="cT8"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-12" dy="38" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o9" result="cT9"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-20" dy="35" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o10" result="cT10"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-27" dy="30" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o11" result="cT11"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-32" dy="24" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o12" result="cT12"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-37" dy="16" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o13" result="cT13"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-39" dy="8" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o14" result="cT14"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-40" dy="0" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o15" result="cT15"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-39" dy="-8" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o16" result="cT16"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-37" dy="-16" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o17" result="cT17"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-32" dy="-24" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o18" result="cT18"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-27" dy="-30" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o19" result="cT19"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-20" dy="-35" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o20" result="cT20"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-12" dy="-38" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o21" result="cT21"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOffset dx="-4" dy="-40" in="SourceGraphic" result="o{id}"></feOffset><feComponentTransfer in="o22" result="cT22"><feFuncA type="table" tableValues="0 0.06666666666666667"></feFuncA></feComponentTransfer><feOff.........完整代码请登录后点击上方下载按钮下载查看
网友评论0