【发布时间】:2020-04-12 07:57:15
【问题描述】:
我有一个垂直范围滑块,我希望“拇指”(您在滑块上移动的东西)比轨道本身更宽(非常类似于 android 滑块的外观)。
我尝试了很多东西,这是我设法做到的最接近的一个
这是我目前的代码:
HTML
<div class="sliderContainer">
<input type="range">
</div>
JS
$(window).on("load resize", function () {
var sliderWidth = $('[type=range]').width();
$('.custom-style-element-related-to-range').remove();
$('<style class="custom-style-element-related-to-range">input[type="range"]::-webkit-slider-thumb { box-shadow: -' + sliderWidth + 'px 0 0 ' + sliderWidth + 'px;}<style/>').appendTo('head');
});
CSS
.sliderContainer {
position: absolute;
margin: 0 auto;
left: -27px;
top: 127px;
width: 0px;
height: 135px;
}
input[type='range'] {
width: 120px;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
input[type='range'] {
overflow: hidden;
-webkit-appearance: none;
background-color: #D2CECC;
transform: rotate(270deg);
}
input[type='range']::-webkit-slider-runnable-track {
height: 3px;
-webkit-appearance: none;
color: #0098A6;
}
input[type='range']::-webkit-slider-thumb {
width: 10px;
-webkit-appearance: none;
height: 10px;
cursor: pointer;
background: #434343;
color: #0098A6;
border: 10px #0098A6;
border-radius: 50%;
margin-top: -3px;
}
}
input[type="range"]::-moz-range-progress {
background-color: #0098A6;
}
input[type="range"]::-moz-range-track {
background-color: #D2CECC;
}
input[type="range"]::-ms-fill-lower {
background-color: #0098A6;
}
input[type="range"]::-ms-fill-upper {
background-color: #D2CECC;
}
任何关于如何进步的想法都会很棒
编辑:
这就是我想要实现的目标:
我尝试了更多的东西,并设法使拇指在“外面”,但现在轨道没有改变颜色。
CSS
@media screen and (-webkit-min-device-pixel-ratio:0) {
input[type='range'] {
-webkit-appearance: none;
background-color: #D2CECC;
transform: rotate(270deg);
}
input[type='range']::-webkit-slider-runnable-track {
height: 3px;
-webkit-appearance: none;
color: #0098A6;
}
input[type='range']::-webkit-slider-thumb {
width: 10px;
-webkit-appearance: none;
height: 10px;
cursor: pointer;
background: #0098A6;
color: transparent;
border: 10px #0098A6;
border-radius: 50%;
margin-top: -3px;
}
}
【问题讨论】:
-
不完全是,因为我需要“填充”部分来改变颜色,这给我带来了麻烦,因为我无法让它填充并将拇指放在外面
-
@LuisFernandez 请查看我更新的代码和答案。现在应该可以满足您的要求了。
-
您能否创建一个有效的示例来帮助我们理解很多东西。
标签: javascript jquery html css