javascript - noUiSlider:如何设置填充样式?
问题描述
如何为 noUiSlider 填充设置背景颜色?
(默认,线性,一个手柄)像这样:
找到了这个,但是:
1)我没有.noUi-background
课(14.0.3版)。
2)我想用updateOptions
. 所以我需要自动改变风格。
解决方案
我认为这对我有用。
该代码段在此处无法使用,但我认为您可以将.noUi-background
类添加到滑块中,然后在调用滑块上的更新函数时更新渐变样式。
var updateSlider = document.getElementById('slider-update');
var updateSliderValue = document.getElementById('slider-update-value');
/* Set up min and max */
var min = 0;
var max = 40;
/* Create slider */
noUiSlider.create(updateSlider, {
range: {
'min': min,
'max': max
},
padding: 6,
start: 20,
margin: 2,
step: 2
});
/* When update the slider, update the gradient style */
updateSlider.noUiSlider.on('update', function (values, handle) {
updateSliderValue.innerHTML = values[handle];
// Update gradient
let distanceFromMin = (values[handle] - min);
let sliderRange = (max - min);
let valueGradient = 100 * ( distanceFromMin / sliderRange );
updateSlider.style.backgroundImage = "linear-gradient(to right, #a2ea4c "+valueGradient+"%, #07aa91 "+valueGradient+"%)";
});
/* Update min/max when calling updateOptions */
var button1 = document.getElementById('update-1');
var button2 = document.getElementById('update-2');
button1.addEventListener('click', function () {
min = 20;
max = 50;
updateSlider.noUiSlider.updateOptions({
range: {
'min': min,
'max': max
}
});
});
button2.addEventListener('click', function () {
min = 10;
max = 40;
updateSlider.noUiSlider.updateOptions({
range: {
'min': min,
'max': max
}
});
});
/* Class for the gradient */
.noUi-background {
background-image: linear-gradient(to right, #a2ea4c 50%, #07aa91 50%);
}
button{
margin-top:50px;
}
<div class="container">
<div id="slider-update" class="noUi-background"></div> <!-- Adding noUi-background class -->
<span id="slider-update-value"></span>
<button class="update-button" id="update-1">
Set range [20, 50]
</button>
<button class="update-button" id="update-2">
Set range [10, 40]
</button>
</div>
推荐阅读
- oracle-jet - 默认十进制格式 Oracle JETt
- amazon-web-services - 在 aws_eks_node_group 块中使用 launch_template 的正确方法是什么?
- javascript - 某些页面上的 Laravel CSRF 令牌不匹配
- c# - 如何为可枚举类型返回 NotFound()?
- javascript - 从参数化的 module.exports 调用函数
- c# - .NET Core EF 一对多/多对多
- python - Python 打印相同的“您有资格申请成为美国参议员或众议员”。尽管输入了超出该范围的年龄,但声明
- javascript - 如何设置使用 v-model 的值输入?- 拉拉维尔
- c# - .net C# - Winform 在标题栏上出现“未响应”消息后被停用
- c# - 从矢量 CANoe 对象启动/执行 XML 测试节点