svg实现可修改参数的立体炫酷圣诞树动画效果代码
代码语言:html
所属分类:动画
代码描述:svg实现可修改参数的立体炫酷圣诞树动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @import url('https://unpkg.com/normalize.css') layer(normalize); @layer normalize, base, demo, debug; @layer debug { [data-lights='false'] { .tree > div::before { opacity: 0; } } [data-unmask='true'] { .tree > div { -webkit-mask: none; mask: none; -webkit-clip-path: none; clip-path: none; outline: 1px dashed hsl(0 0% 100%); outline-offset: 1px; &::after { outline: 1px dashed yellow; outline-offset: 2px; } &::before { outline: 1px dashed green; outline-offset: 4px; } } } } @layer demo { .star { width: 5ch; left: 50%; position: absolute; bottom: 100%; z-index: 2; transform-style: preserve-3d; transform: translate3d(-50%, 40%, 130px) rotateX(30deg) rotateY(-30deg); filter: drop-shadow(0 0 6px yellow); path { stroke: white; stroke-dasharray: 100; stroke-dashoffset: 100; -webkit-animation: draw 1s 4s both; animation: draw 1s 4s both; transform-box: fill-box; transform-origin: 50% 50%; opacity: 0.1; &:nth-of-type(1) { -webkit-clip-path: inset(0 50% 0 0); clip-path: inset(0 50% 0 0); } &:nth-of-type(2) { -webkit-clip-path: inset(0 50% 0 0); clip-path: inset(0 50% 0 0); /* opacity: 0; */ scale: -1 1; } } } .scene { --character-width: 1; /* In "ch" units */ --inner-angle: calc((360 / var(--sides)) * 1deg); --radius: calc((var(--character-width, 1) / sin(var(--inner-angle))) * 1ch); transform-style: preserve-3d; position: relative; } .split { background: hsl(0 0% 0% / 0.5); position: absolute; top: 50%; left: 50%; width: calc(var(--radius) * 5); height: calc(var(--height.........完整代码请登录后点击上方下载按钮下载查看
网友评论0