我想更改输入[范围]上的刻度线的颜色

I want to change the color of the tick marks on input[range]

提问人:Beginner Professional 提问时间:10/1/2023 最后编辑:Beginner Professional 更新时间:10/2/2023 访问量:75

问:

我想知道什么。

我想在 HTML 中创建和自定义滑块。 虽然各种网站都解释了如何自定义滑块本身,但我找不到任何关于如何自定义缩放本身的解释。 如果我使用 、 或 添加数据,如何更改 datalist 添加的刻度的颜色?input="range"datalistoption

      <input
        type="range"
        min=0
        max=100
        step={1}
        list="tickmarks"
      />
      <datalist id="tickmarks">
        {Array.from({ length: max - min + 1 }, (_, i) => i + min).map((label) => (
          <option key={label} value={label}/>
        ))}
      </dataList>

enter image description here

HTML CSS 输入

评论

0赞 Shahram Alemzadeh 10/2/2023
datalist 元素中的代码是 javascript,但这里只是文字,什么都不做。

答:

2赞 Par Tha 10/1/2023 #1

试试这个:

使用这将有助于更改输入类型范围的颜色accent-color

input[type='range'] {
accent-color: #f2354e;
}
<input type="range">

0赞 A. Meshu 10/2/2023 #2

只是为了详细说明@ParTha答案 - 您可以使用来侦听范围的值,然后在值是某物时为其着色(使用)。jsclass

片段:

document.querySelectorAll("input[type='range']")[0].addEventListener('change', function() {
    if (this.value < 50) { this.classList.add('lessThen50');}
    else { this.classList.remove('lessThen50')};
});
input[type='range'] {
accent-color: #f2354e;
}
.lessThen50 {
accent-color: #2d1694!important;
}
<input type="range">

0赞 Chachacubing74 10/2/2023 #3

似乎在标签内,它除了 javascript 之外什么都没有。试试吧,也许吧?

评论

0赞 Heri Hehe Setiawan 10/5/2023
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。