在反应中,如何根据值更改范围滑块的颜色?

free_lions_n_tigers_from_cages

var slider = document.getElementById("myRange");
var output = document.getElementById("demo");
output.innerHTML = slider.value;

slider.oninput = function() {
  output.innerHTML = this.value;
}
.slidecontainer {
  width: 100%;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  height: 15px;
  border-radius: 5px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}

.slider:hover {
  opacity: 1;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #04AA6D;
  cursor: pointer;
}

.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #04AA6D;
  cursor: pointer;
}
<h1>Round Range Slider</h1>

<div class="slidecontainer">
  <input type="range" min="1" max="100" value="50" class="slider" id="myRange" style="width: 200px">
  <p>Value: <span id="demo"></span></p>
</div>

上面的代码是一个用 HTML 制作的范围滑块。

在反应中,如果值小于 50,我如何创建一个,那么滑块的左侧是蓝色的。如果该值大于 50,那么滑块的右侧将是紫色?

瑞安乐

这就是你在 Reactjs 中的做法:

关键是在你的滑块值上有一个状态:

const [value, setValue] = React.useState(50);

然后根据该值选择一个类:

className={`slider ${value > 50 ? "slider-50" : "slider-0"}`}

function App() {
  const [value, setValue] = React.useState(50);
  return (
    <React.Fragment>
      <h1>Round Range Slider</h1>
      <div class="slidecontainer">
        <input
          type="range"
          min="1"
          max="100"
          value={value}
          onChange={({ target: { value } }) => setValue(value)}
          className={`slider ${value > 50 ? "slider-50" : "slider-0"}`}
        />
        <p>
          Value: <span>{value}</span>
        </p>
      </div>
    </React.Fragment>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(
    <App />,
  rootElement
);
.slidecontainer {
  width: 100%;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  height: 15px;
  border-radius: 5px;
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: 0.2s;
  transition: opacity 0.2s;
}

.slider:hover {
  opacity: 1;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  cursor: pointer;
}
.slider-50 {
  background: blue;
  background: linear-gradient(90deg, #d3d3d3 50%, blue 50%);
}
.slider-50::-webkit-slider-thumb {
  background: blue;
}

.slider-0 {
  background: purple;
  background: linear-gradient(90deg, purple 50%, #d3d3d3 50%);
}
.slider-0::-webkit-slider-thumb {
  background: purple;
}

.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #04aa6d;
  cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.production.min.js"></script>
<div id="root"></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用CSS根据文本值更改文本的颜色?

如何根据轴值更改d3js中的线条颜色?

在Materializecss中更改范围滑块的颜色

是否可以根据值更改文本颜色?(反应本机)

如何根据值更改输入滑块的拇指颜色?

范围滑块-填充时如何更改刻度线颜色?

如何根据值更改ANTD表中的单元格颜色?

如何根据表格单元格中的值更改表格行的背景颜色?

如何根据值更改ant设计进度栏颜色?

如何使用javascript根据值更改数字的颜色并做出反应?

范围滑块根据值更改拇指背景图像

根据MaterialUI滑块的值更改图像

如何根据值更改<td>元素的颜色

如何根据我的分组值而不是R中ggplot中的填充值更改颜色?

使用输入范围滑块中的值更改图像的亮度

如何根据值更改进度栏颜色

如何使用JavaScript / jQuery根据表中的值更改td背景颜色?

如何根据单元格值更改php中的单元格表颜色?

如何根据单元格中包含的值更改datagridview颜色

如何根据其当前值更改noUiSliders上的颜色?

如何根据对象值更改javascript中的颜色

如何使用 plotweb 二分中的 ifelse() 语句根据交互值更改交互的颜色?

如何根据 WPF、VB.NET 中滑块中的滑块值更改文本框中的文本和标签

根据表中的值更改行颜色

如何使用php和html根据值更改文本颜色?

如何根据R中列的值更改图形的颜色

如何根据reactjs中的值更改段落中的背景颜色

根据值更改圆形滑块颜色

如何根据R tmap中的属性值更改多边形的边框颜色