js+css实现三维分层式时钟悬浮立体效果代码
代码语言:html
所属分类:其他
代码描述:js+css实现三维分层式时钟悬浮立体效果代码
下面为部分代码预览,完整代码请点击下载或在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"> <link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Rubik&display=swap'> <style> * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { --hue: 223; --bg: hsl(var(--hue),90%,40%); --fg: hsl(0,0%,100%); --trans-dur: 0.3s; font-size: calc(16px + (32 - 16) * (100vw - 320px) / (2560 - 320)); } body { background-color: var(--bg); color: var(--fg); display: flex; font: 1em/1.5 Rubik, sans-serif; height: 100vh; transition: background-color var(--trans-dur), color var(--trans-dur); } .clock { --hrAngle: 0; --minAngle: 0; border-radius: 50%; margin: auto; outline: transparent; position: relative; width: 12em; height: 12em; transform: rotateX(30deg) rotateY(-30deg) rotateZ(30deg); transform-style: preserve-3d; transition: transform var(--trans-dur) cubic-bezier(0.42,0,0.58,1); -webkit-tap-highlight-color: transparent; } .clock:focus-visible, .clock:hover { transform: rotateX(0) rotateY(0) rotateZ(0); } .clock__digits { display: flex; justify-content: center; align-items: end; line-height: 1; margin-top: 2.25em; -webkit-user-select: none; -moz-user-select: none; user-select: none; } .clock__digit-group { margin: 0 0.1em; width: 2ch; } .clock__digit-group[data-unit="h"] { text-align: right; } .clock__digit-group--small { font-size: 0.75em; } .clock__hand, .clock__layer, .clock__ring { position: absolute; } .clock__hand { bottom: calc(50% - 0.5em); left: calc(50% - 0.5em); width: 1em; mix-blend-mode: difference; perspective: 4.25em; transform-origin: 0.5em calc(100% - 0.5em); } .clock__hand--hr { height: 2.75em; transform: rotate(var(--hrAngle)) translateY(-2em); } .clock__hand--min { height: 3.75em; transform: rotate(var(--minAngle)) translateY(-2em); } .clock__hand:before { background-color: va.........完整代码请登录后点击上方下载按钮下载查看
网友评论0