实现一个文字与背景反色的进度条

木头的喵喵拖孩

如图所示,代码放在下面了,可根据实际情况扩展功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>文字与背景反色的进度条</title>
<style>
.wrapper {
position: relative;
background-color: #e4f3ff;
width: 125px;
height: 20px;
border-radius: 6px;
overflow: hidden;
}

.font {
position: absolute;
left: 0%;
top: 0%;
z-index: 2;
width: 100%;
height: 100%;
background-image: linear-gradient(
to right,
#ffffff 0%,
#ffffff 0%,
#555555 0%,
#555555 100%
);
background-clip: text;
color: transparent;
border-radius: 6px;
text-align: center;
}

.bar {
position: absolute;
left: 0%;
top: 0%;
z-index: 1;
width: 0%;
height: 100%;
border-radius: 6px;
background-color: #2c96e0;
}
</style>
</head>

<body>
<div>
<input class="input" type="number" min="0" max="100" value="0" />
</div>

<div class="wrapper">
<div class="font">0%</div>
<div class="bar"></div>
</div>

<script>
const $input = document.getElementsByClassName("input")[0];
const $font = document.getElementsByClassName("font")[0];
const $bar = document.getElementsByClassName("bar")[0];

function setPercent(percent) {
$font.style.backgroundImage = `linear-gradient(to right, #ffffff 0%, #ffffff ${percent}%, #555555 ${percent}%, #555555 100%)`;
$font.innerText = `${percent}%`;
$bar.style.width = `${percent}%`;
}

$input.onchange = (ev) => {
let percent = ev.target.value;
if (percent < 0) percent = ev.target.value = 0;
if (percent > 100) percent = ev.target.value = 100;
setPercent(percent);
};
</script>
</body>
</html>
  • 标题: 实现一个文字与背景反色的进度条
  • 作者: 木头的喵喵拖孩
  • 创建于: 2024-05-24 11:05:00
  • 更新于: 2024-05-24 11:28:22
  • 链接: https://blog.xx-xx.top/2024/05/24/实现一个文字与背景反色的进度条/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
此页目录
实现一个文字与背景反色的进度条