我有一个 <input type="range">
并想旋转拇指 - 但只有输入时的拇指。
我的问题是:当我尝试旋转它时,它会旋转整个 slider 。
有人可以帮助我吗?
function slide(event){
event.target.style.webkitTransform = 'rotate(20deg)';
}
.slidecontainer {
width: 100%;
}
.slider {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 20px;
background: #d3d3d3;
outline: none;
opacity: 0.7;
-webkit-transition: .2s;
transition: opacity .2s;
border-radius: 20px;
}
.slider:hover {
opacity: 1;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 50px;
height: 50px;
border-radius: 50px;
background: grey;
background-image: url(img/thumb.png);
background-size: 35px 35px;
background-position: center;
background-repeat: no-repeat;
cursor: pointer;
}
.slider::-moz-range-thumb {
width: 50px;
height: 50px;
border-radius: 50px;
background: grey;
background-image: url(img/thumb.png);
background-size: 35px 35px;
background-position: center;
background-repeat: no-repeat;
cursor: pointer;
}
<div class="slidecontainer">
<input type="range" min="100" max="500" value="300" class="slider" oninput="slide(event)">
</div>
最佳答案
由于无法使用 JS 定位伪元素,请考虑使用 CSS 变量。您在输入元素中定义它们,它们由拇指继承;因此,您可以轻松实现您想要的。
function slide(event) {
event.target.style.setProperty('--r',event.target.value+'deg');
}
.slidecontainer {
width: 100%;
}
.slider {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 20px;
background: #d3d3d3;
outline: none;
opacity: 0.7;
transition: opacity .2s;
border-radius: 20px;
}
.slider:hover {
opacity: 1;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 50px;
height: 50px;
border-radius: 50px;
background:linear-gradient(red 50%,blue 0);
cursor: pointer;
display:inline-block;
transform:rotate(var(--r,180deg));
}
.slider::-moz-range-thumb {
width: 50px;
height: 50px;
border-radius: 50px;
background: linear-gradient(red 50%,blue 0);
cursor: pointer;
display:inline-block;
transform:rotate(var(--r,180deg));
}
<div class="slidecontainer">
<input type="range" min="0" max="360" value="180" class="slider" oninput="slide(event)">
</div>
关于javascript - 如何在 javascript 中旋转输入类型范围拇指?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49942898/