js+css实现中性简洁时钟指针走动显示时间代码
代码语言:html
所属分类:布局界面
代码描述:js+css实现中性简洁时钟指针走动显示时间代码
代码标签: js css 中性 简洁 时钟 指针 走动 显示 时间 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { --hue: 223; --bg: hsl(var(--hue),10%,90%); --fg: hsl(var(--hue),10%,10%); --primary: hsl(var(--hue),90%,50%); --shadow1: hsl(var(--hue),10%,80%); --shadow2: hsl(var(--hue),10%,100%); --trans-dur: 0.3s; font-size: calc(16px + (24 - 16) * (100vw - 320px) / (2560 - 320)); } body { background-color: var(--bg); color: var(--fg); display: flex; font: 1em/1.5 sans-serif; height: 100vh; } .clock, .clock:before, .clock__tick:before { animation-duration: 0.6s; animation-timing-function: ease-in-out; animation-fill-mode: forwards; } .clock { animation-name: clockOuter; background-color: var(--bg); border-radius: 50%; box-shadow: 0 0 0 var(--shadow1), 0 0 0 var(--shadow2); margin: auto; position: relative; width: 16em; height: 16em; } .clock:before, .clock__hand, .clock__hand:before, .clock__tick, .clock__tick:before { position: absolute; } .clock:before, .clock__hand:before, .clock__tick:before { content: ""; display: block; } .clock:before { animation-name: clockInner; border-radius: inherit; box-shadow: 0 0 0 var(--shadow1), 0 0 0 var(--shadow2); top: calc(50% - 4em); left: calc(50% - 4em); width: 8em; height: 8em; z-index: 1; } .clock__hand, .clock__hand:before { transform-origin: 50% calc(100% - 1em); } .clock__hand { bottom: calc(50% - 1em); left: calc(50% - 0.125em); width: 0.25em; transform: scaleY(0); z-index: 2; } .clock__hand:before { width: 100%; height: 100%; } .clock__hand--hr { height: 4em; } .clock__hand--hr:before { background-color: hsl(var(--hue),10%,50%); } .clock__hand--min { height: 6em; } .clock__hand--min:before { background-color: var(--fg); } .clock__hand--sec { height: 7em; } .clock__hand--sec:before { background-color: var(--primary); } .clock--moving .clock__hand--sec:before { animation: clockSecondHand 0.5s ease-in-out; } .clock__tick { bottom: 50%; left: calc(50% - 0.125em); width: 0.25em; height: 1.25em; transform-origin: 50% 100%; } .clock__tick:before { background-color: hsla(var(--hue),10%,50%,0.5); animation-name: clockTick; width: 100%; height: 100%; transform-origin: 50% 0%; } .clock__tick--0 { transform: translateY(-6.5em); } .clock__tick--3 { transform: rotate(90deg) translateY(-6.5em); } .clock__tick--6 { transform: rotate(180deg) translateY(-6.5em); } .clock__tick--9 { transform: rotate(270deg) translateY(-6.5em); } /* Dark theme */ @media (prefers-color-scheme: dark) { :root { --bg: hsl(var(--hue),10%,20%); --fg: hsl(var(--hue),10%,90%); --shadow1: hsl(var(--hue),10%,10%); --shadow2: hsl(var(--hue),10%,30%); } } /* Animation */ @keyframes clockInner { from, 50% { box-shadow: 0 0 0 var(--shadow1), 0 0 0 var(--shadow2); } 75%, to { box-shadow: 0.375em 0.375em 0.75em var(--shadow1), -0.375em -0.375em 0.75em var(--shadow2); } } @keyframes clockOuter { from, 25% { box-shadow: 0 0 0 var(--shadow1), 0 0 0 var(--shadow2); } 50%, to { box-shadow: 0.75em 0.75em 1.5em var(--shadow1), -0.75em -0.75em 1.5em var(--shadow2); } } @keyframes clockSecondHand { from, 25% { transform: rotate(-6deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(-1deg); } to { transform: rotate(0deg); } } @keyframes clockTick { from, 75.........完整代码请登录后点击上方下载按钮下载查看
网友评论0