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

Posted

技术标签:

【中文标题】如何让滑块的拇指一直移动到最后?【英文标题】: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> 哎呀,考虑回答你自己的问题。 【参考方案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作为默认的。 他应该在问题的标题中写下这一点。

以上是关于如何让滑块的拇指一直移动到最后?的主要内容,如果未能解决你的问题,请参考以下文章

将滑块的拇指模板编辑为图像 Windows Phone 7

如何垂直移动带有滑块的UILabel

如何找到滑块的拇指来设置其宽度

在 UWP 中获取滑块的拇指

下拉菜单项中的 jquery 滑块导致太多事件

在 React 中,如何在范围滑块的拇指上创建一个气泡头