如何让滑块的拇指一直移动到最后?
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 是因为您从未打开过<fieldset>
标签造成的吗?
不,这是我复制粘贴的错误。那不知道是什么问题。 ://
嗯,你遇到了什么行为?
叹息。这是我的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作为默认的。 他应该在问题的标题中写下这一点。以上是关于如何让滑块的拇指一直移动到最后?的主要内容,如果未能解决你的问题,请参考以下文章