【问题标题】:How to make the thumb of a slider move all the way to the end?如何让滑块的拇指一直移动到最后?
【发布时间】:2020-03-15 09:16:28
【问题描述】:

基本上,我想要一个适用于真假的范围滑块。

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 作为默认值。问题是,在如此小的范围内,拇指不会移动太多。理想情况下,对于任何一个答案,我都会让拇指一直移动到最后。有人知道怎么做吗?

【问题讨论】:

  • 把你的代码变成sn-p后,滑块立即向两边点击,这是什么问题? ti 是因为您从未打开过&lt;fieldset&gt; 标签造成的吗?
  • 不,这是我复制粘贴的错误。那不知道是什么问题。 ://
  • 嗯,你遇到了什么行为?
  • 叹息。这是我的CSS中的一个错误。它从另一个选择器继承了 30 的填充。将填充设置为 0 可以修复它。 -_- 我讨厌 CSS>
  • 哎呀,考虑回答你自己的问题。

标签: javascript html css slider rangeslider


【解决方案1】:

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

.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;
}

【讨论】:

  • 显然不是两天。对不起,伙计们。
  • 哦,是的,该死的,太奇怪了。
【解决方案2】:

简单:

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>

【讨论】:

  • 行为与提供的代码有何不同?
  • 它将滑块移动到最后;
  • 在把他的代码变成sn-p之后,它也是。见here
  • 不是,他说1是默认的,你的链接好像也用1作为默认的。
  • 他应该在问题的标题中写下这一点。
猜你喜欢
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多