js实现弹性计数器效果代码
代码语言:html
所属分类:其他
代码描述:js实现弹性计数器效果代码,点击鼠标开始计数。
下面为部分代码预览,完整代码请点击下载或在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=DM+Sans&display=swap'>
<style>
* {
border: 0;
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--bg: hsl(0,0%,100%);
--fg: hsl(0,0%,0%);
font-size: calc(20px + (30 - 20) * (100vw - 320px) / (1280 - 320));
}
body,
button {
color: var(--fg);
font: 1em/1.5 "DM Sans", sans-serif;
}
body {
background-color: var(--bg);
height: 100vh;
display: grid;
place-items: center;
}
.counter {
background-color: var(--bg);
overflow: hidden;
position: relative;
font-size: 4em;
line-height: 1;
width: 100%;
height: 100%;
-webkit-appearance: none;
appearance: none;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
-webkit-tap-highlight-color: transparent;
}
.counter__digit,
.counter__slash,
.counter__shade {
display: flex;
position: absolute;
}
.counter__digit {
justify-content: flex-end;
align-items: center;
padding: 0 1ch 0 0;
top: 0;
left: 0;
width: 50%;
height: 100%;
}
.counter__digit[data-prev-numerator] {
transform: translateY(-100%);
}
.counter__digit[data-denominator] {
justify-content: flex-start;
padding: 0 0 0 1ch;
left: 50%;
}
.counter__slash {
background-color: currentColor;
top: 50%;
left: 50%;
transform: translate(-50%,-50%) rotate(22.5deg);
height: 1em;
width: 0.1em;
}
.counter__sr {
clip: rect(1px,1px,1px,1px);
overflow: hidden;
position: absolute;
width: 1px;
height: 1px;
}
.counter__shade {
background-color: var(--bg);
mix-blend-mode: difference;
inset: 0;
width: inherit;
height: 100%;
transform: translateY(-100%);
}
.counter--inverted .counter__shade {
transform: translateY(0);
}
.counter--ru.........完整代码请登录后点击上方下载按钮下载查看
网友评论0