如何让滑块的拇指一直移动到最后?

How to make the thumb of a slider move all the way to the end?

基本上,我想要一个适用于 true 和 false 的范围滑块。

fieldset > * {
  vertical-align: middle;
}

.quiz-label-left, .quiz-label-right{
  display: inline-block;
  width: 50px;
  padding: 2px;
  text-align: center;
}

.quiz-slider {
  -webkit-appearance: none;
  display: inline-block;
  width: 100px;
  height: 25px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}

.quiz-slider:hover {
  opacity: 1;
}

.quiz-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  background: #4CAF50;
  cursor: pointer;
}

.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  background: #4CAF50;
  cursor: pointer;
}

.slider-div {
  width: 100%;
  margin: 0 auto;
}
<fieldset>
<span class="quiz-label quiz-label-left">TRUE</span>
<input type="range" class="quiz-slider" name="quiz-slider" min="0" max="2" step="1" value="1">
<span class="quiz-label quiz-label-right">FALSE</span>
</fieldset>

        

我们的想法是使用 2 为真,0 为假,1 作为默认值。问题是,在这么小的范围内,拇指不会移动太多。理想情况下,对于任何一个答案,我都会让拇指一直移动到最后。有人知道怎么做吗?

简单:

document.getElementsByClassName("quiz-slider")[0].value = 2;

Id 和标签名称选择器也可以使用。 这是完整的代码:

  document.getElementsByClassName("quiz-slider")[0].value = 2;
 fieldset > * {
  vertical-align: middle;
}

.quiz-label-left, .quiz-label-right{
  display: inline-block;
  width: 50px;
  padding: 2px;
  text-align: center;
}

.quiz-slider {
  -webkit-appearance: none;
  display: inline-block;
  width: 100px;
  height: 25px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}

.quiz-slider:hover {
  opacity: 1;
}

.quiz-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  background: #4CAF50;
  cursor: pointer;
}

.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  background: #4CAF50;
  cursor: pointer;
}

.slider-div {
  width: 100%;
  margin: 0 auto;
}
<!doctype html>
<html>
  <body>
    <fieldset>
      <span class="quiz-label quiz-label-left">TRUE</span>
      <input type="range" class="quiz-slider" name="quiz-slider" min="0" max="2" step="1" value="1">
      <span class="quiz-label quiz-label-right">FALSE</span>
    </fieldset>
  </body>
</html>

所以,显然发生的事情是滑块从选择器继承了一个填充

.quiz-card * {
  padding: 0px 30px;
}

这导致我的拇指移动范围很小。将滑块的填充设置为 0 可修复它。

.quiz-slider {
  -webkit-appearance: none;
  display: inline-block;
  width: 100px;
  height: 25px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
  padding: 0;
}