svg+css实现足球轨迹运动loading加载动画效果代码
代码语言:html
所属分类:加载滚动
代码描述:svg+css实现足球轨迹运动loading加载动画效果代码
代码标签: svg css 足球 轨迹 运动 loading 加载 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <style> * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { --hue: 210; --bg: hsl(var(--hue),10%,85%); --fg: hsl(var(--hue),10%,15%); --red: hsl(344,75%,40%); --white: hsl(0,0%,100%); --blue: hsl(213,81%,21%); --trans-dur: 0.3s; font-size: clamp(1rem,0.95rem + 0.25vw,1.25rem); } body { background-color: var(--bg); color: var(--fg); display: flex; font: 1em/1.5 sans-serif; height: 100vh; transition: background-color var(--trans-dur), color var(--trans-dur); } .pl { --dur: 3s; display: block; margin: auto; width: 14em; height: auto; } .pl__ball, .pl__ball-shadow, .pl__ball-texture, .pl__stripe, .pl__stripe-dot, .pl__stripe-rotate { animation-duration: var(--dur); animation-timing-function: linear; animation-iteration-count: infinite; } .pl__ball { animation-name: ball; } .pl__ball-shadow { animation-name: ball-shadow; } .pl__ball-texture { animation-name: ball-texture; } .pl__stripe { animation-name: stripe; } .pl__stripe--1 { animation-name: stripe1; } .pl__stripe--2 { animation-name: stripe2; } .pl__stripe--3 { animation-name: stripe3; } .pl__stripe-dot { animation-name: stripe-dot; } .pl__stripe-dot-group:nth-child(1) .pl__stripe-dot:nth-child(2) { animation-delay: calc(var(--dur) * 0.2333333333); } .pl__stripe-dot-group:nth-child(1) .pl__stripe-dot:nth-child(3) { animation-delay: calc(var(--dur) * 0.3); } .pl__stripe-dot-group:nth-child(1) .pl__stripe-dot:nth-child(4) { animation-delay: calc(var(--dur) * 0.45); } .pl__stripe-dot-group:nth-child(1) .pl__stripe-dot:nth-child(5) { animation-delay: calc(var(--dur) * 0.6833333333); } .pl__stripe-dot-group:nth-child(1) .pl__stripe-dot:nth-child(6) { animation-delay: calc(var(--dur) * 0.7083333333); } .pl__stripe-dot-group:nth-child(1) .pl__stripe-dot:nth-child(7) { animation-delay: calc(var(--dur) * 0.8416666667); } .pl__stripe-dot-group:nth-child(2) .pl__stripe-dot:nth-child(1) { animation-delay: calc(var(--dur) * 0.1083333333); } .pl__stripe-dot-group:nth-child(2) .pl__stripe-dot:nth-child(2) { animation-delay: calc(var(--dur) * 0.3333333333); } .pl__stripe-dot-group:nth-child(2) .pl__stripe-dot:nth-child(3) { animation-delay: calc(var(--dur) * 0.425); } .pl__stripe-dot-group:nth-child(2) .pl__stripe-dot:nth-child(4) { animation-delay: calc(var(--dur) * 0.6); } .pl__stripe-dot-group:nth-child(2) .pl__stripe-dot:nth-child(5) { animation-delay: calc(var(--dur) * 0.6583333333); } .pl__stripe-dot-group:nth-child(2) .pl__stripe-dot:nth-child(6) { animation-delay: calc(var(--dur) * 0.8083333333); } .pl__stripe-dot-group:nth-child(2) .pl__stripe-dot:nth-child(7) { animation-delay: calc(var(--dur) * 0.8416666667); } .pl__stripe-dot-group:nth-child(2) .pl__stripe-dot:nth-child(8) { animation-delay: calc(var(--dur) * 0.8916666667); } .pl__stripe-dot-group:nth-child(3) .pl__stripe-dot:nth-child(1) { animation-delay: calc(var(--dur) * -0.0666666667); } .pl__stripe-dot-group:nth-child(3) .pl__stripe-dot:nth-child(2) { animation-delay: calc(var(--dur) * 0.0583333333); } .pl__stripe-dot-group:nth-child(3) .pl__stripe-dot:nth-child(3) { animation-delay: calc(var(--dur) * 0.2083333333); } .pl__stripe-dot-group:nth-child(3) .pl__stripe-dot:nth-child(4) { animation-delay: calc(var(--dur) * 0.4); } .pl__stripe-dot-group:nth-child(3) .pl__stripe-dot:nth-child(5) { animation-delay: calc(var(--dur) * 0.5166666667); } .pl__stripe-dot-group:nth-child(3) .pl__stripe-dot:nth-child(6) { animation-delay: calc(var(--dur) * 0.625); } .pl__stripe-dot-group:nth-child(3) .pl__stripe-dot:nth-child(7) { animation-delay: calc(var(--dur) * 0.7666666667); } .pl__stripe-rotate { animation-name: stripe-rotate; } /* Animation */ @keyframes ball { from { transf.........完整代码请登录后点击上方下载按钮下载查看
网友评论0