【发布时间】:2021-03-29 01:13:15
【问题描述】:
我一直在尝试将 input[type='range'] 溢出设置为隐藏,但是由于 input[type='range'] 溢出设置为隐藏,因此无法将拇指放大几 px,所以我正在尝试在组件本身内实现一些逻辑,而不是运气。
js:
const Slide3 = (props) => {
const slider = useRef();
const min = slider.min;
const max = slider.max;
const value = slider.value;
if (slider.current) {
// loaded
slider.current.style.background = `linear-gradient(to right, red 0%, red ${
((value - min) / (max - min)) * 100
}%, #DEE2E6 ${((value - min) / (max - min)) * 100}%, #DEE2E6 100%)`;
slider.current.oninput = function () {
slider.current.style.background = `linear-gradient(to right, red 0%, red ${
((this.value - this.min) / (this.max - this.min)) * 100
}%, #DEE2E6 ${
((this.value - this.min) / (this.max - this.min)) * 100
}%, #DEE2E6 100%)`;
};
}
return (
<div className="slide-3">
<div className="sliders-container">
{' '}
<Slider
name="Thickness"
id="thickness-slider"
min={0.01}
max={0.1}
step={0.01}
refs={slider}
/>
<Slider name="Length" id="length-slider" min={120} max={150} step={1} />
</div>
</div>
);
};
css:
input[type="range"] {
-webkit-appearance: none;
-moz-appearance: none;
width: 600px;
height: 15px;
padding: 0;
border-radius: 20px;
outline: none;
cursor: pointer;
background-color: rgb(220, 220, 220);
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
-moz-appearance: none;
-webkit-border-radius: 100px;
/*30x30px adjusted to be same as 28x28px on moz*/
height: 30px;
width: 30px;
border-radius: 100px;
background: #ffffff;
}
【问题讨论】:
标签: javascript html css reactjs input