重写后的标题为:如何在HTML中制作一个带有渐变背景的自动填充滑块
P粉715228019
P粉715228019 2024-02-03 20:57:38
0
2
508

我只是在玩 HTML,我想制作一个用渐变填充自身的滑块,但我发现这几乎是不可能的。我已经研究了几个小时,但似乎找不到答案。

我认为我需要 JS,但我在那里完全空白。

.slidecontainer {
  justify-content: center;
  bottom: 0px;
  margin-left: auto;
}

.slider {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 5px;
  width: 100%;
  height: 25px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.8;
  -webkit-transition: .2s;
  transition: opacity .2s;
}

.slider:hover {
  opacity: 1;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 5px;
  width: 25px;
  height: 25px;
  background: blue;
  cursor: pointer;
}

.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  background: blue;
  cursor: pointer;
}
<div class="slidecontainer">
  <input type="range" min="1" max="100" value="1" class="slider" id="myRange">
</div>

我已经尝试了上面所说的方法。我一直在尝试这个网站上的东西(https://codepen.io/kaiquenunes23/pen/LYEvegK),但我无法控制它。

我还在 StackOverflow 上阅读了多个其他线程。

P粉715228019
P粉715228019

全部回复(2)
P粉541565322

试试这个

P粉541796322

需要JS来获取拇指的当前位置。

此代码片段通过读取滑块上的位置并计算其移动的百分比来实现此目的。然后它将 CSS 变量 --pc 设置为该百分比值。

滑块有两个背景图像,第一个是拇指透明的背景图像,然后是您想要的灰色。 “在它下面”是第二个背景图像,它是您想要的任何线性渐变。

这样,当您将滑块向右移动时,线性渐变就会显示出来。

const slider = document.getElementById("myRange");
slider.addEventListener("input", update);

function update() {
  const pc = (slider.value - slider.min) / (slider.max - slider.min) * 100 + '%';
  slider.style.setProperty('--pc', pc);
}
.slidecontainer {
  justify-content: center;
  bottom: 0px;
  margin-left: auto;
}

.slider {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 5px;
  width: 100%;
  height: 25px;
  --pc: 0;
  background: linear-gradient(to right, transparent 0 var(--pc), #d3d3d3 var(--pc) 100%), linear-gradient(to right, red, green);
  outline: none;
  opacity: 0.8;
  -webkit-transition: .2s;
  transition: opacity .2s;
}

.slider:hover {
  opacity: 1;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 5px;
  width: 25px;
  height: 25px;
  background: blue;
  cursor: pointer;
}

.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  background: blue;
  cursor: pointer;
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板