react实现目标完成进度条效果代码
代码语言:html
所属分类:进度条
代码描述:react实现目标完成进度条效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> <link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap'> <style> * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { --hue: 223; --sat: 10%; --hue-danger: 6; --hue-success: 126; --hue-warning: 29; --white: hsl(0,0%,100%); --gray1: hsl(var(--hue),var(--sat),90%); --gray2: hsl(var(--hue),var(--sat),80%); --gray3: hsl(var(--hue),var(--sat),70%); --gray4: hsl(var(--hue),var(--sat),60%); --gray5: hsl(var(--hue),var(--sat),50%); --gray6: hsl(var(--hue),var(--sat),40%); --gray7: hsl(var(--hue),var(--sat),30%); --gray8: hsl(var(--hue),var(--sat),20%); --gray9: hsl(var(--hue),var(--sat),10%); --danger1: hsl(var(--hue-danger),90%,94%); --danger2: hsl(var(--hue-danger),90%,81%); --danger3: hsl(var(--hue-danger),90%,68%); --danger4: hsl(var(--hue-danger),90%,55%); --danger5: hsl(var(--hue-danger),90%,42%); --danger6: hsl(var(--hue-danger),90%,29%); --success1: hsl(var(--hue-success),90%,80%); --success2: hsl(var(--hue-success),90%,67%); --success3: hsl(var(--hue-success),90%,54%); --success4: hsl(var(--hue-success),90%,41%); --success5: hsl(var(--hue-success),90%,28%); --success6: hsl(var(--hue-success),90%,15%); --warning1: hsl(var(--hue-warning),90%,90%); --warning2: hsl(var(--hue-warning),90%,77%); --warning3: hsl(var(--hue-warning),90%,64%); --warning4: hsl(var(--hue-warning),90%,51%); --warning5: hsl(var(--hue-warning),90%,38%); --warning6: hsl(var(--hue-warning),90%,25%); --trans-dur: 0.3s; font-size: clamp(1rem,0.95rem + 0.25vw,1.25rem); } body { background-color: var(--gray1); color: var(--gray9); display: flex; font: 1em/1.5 "DM Sans", sans-serif; height: 100vh; overflow-x: hidden; transition: background-color var(--trans-dur), color var(--trans-dur); } main { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 1.5em; margin: auto; padding: 1.5em; width: 100vw; height: min-content; min-height: 100%; } h2 { font-size: 1.5em; line-height: 1; margin: 0 0 0.75rem; padding-top: 0.75rem; } .goal-progress { background-color: var(--white); border-radius: 1.25em; box-shadow: 0 0.25em 0.125em rgba(0, 0, 0, 0.2); padding: 1em 1.5em 1.5em; width: 100%; max-width: 28.5em; transition: background-color var(--trans-dur), box-shadow var(--trans-dur); } .goal-progress h2 { font-weight: 300; } .goal-progress p, .goal-progress strong { transition: color var(--trans-dur); } .goal-progress p { color: var(--gray6); font-weight: 300; } .goal-progress strong { color: var(--gray9); font-weight: 500; } .goal-progress__bar { margin-bottom: 0.75em; position: relative; height: 2.25em; } .goal-progress__bar, .goal-progress__bar-fill-bottom, .goal-progress__bar-fill-top, .goal-progress__bar-track { width: 100%; } .goal-progress__bar-fill-bottom, .goal-progress__bar-fill-top, .goal-progress__bar-knob-track, .goal-progress__bar-knob-wrap, .goal-progress__bar-track { position: absolute; } .goal-progress__bar-fill-bottom, .goal-progress__bar-fill-top, .goal-progress__bar-knob-track { transition: background-color var(--trans-dur), transform 0.45s cubic-bezier(0.65, 0, 0.35, 1); } .goal-progress__bar-fill-bottom, .goal-progress__bar-fill-top { height: 100%; transform: translateX(-100%); } .goal-progress__bar-knob-wrap, .goal-progress__bar-track, .goal-progress__bar-fill-bottom { overflow: hidden; } .goal-progress__bar-fill-bottom:before { animation: fill-pattern-move 1s linear infinite; content: ""; display: block; mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" .........完整代码请登录后点击上方下载按钮下载查看
网友评论0