javascript - 通过 Javascript 更改范围 slider 背景

标签 javascript css

我正在尝试通过 Javascript 更改范围 slider 的背景颜色。

我没有收到任何错误,但是背景颜色根本没有改变。所有其他可以更改的值都可以工作,但背景样式除外。

<input type="range" min="1000" max="6000" value="2000" step="100" class="slider" id="myRange" name="myRange"/>
.slider{
    -webkit-appearance: none;
    width: 100%;
    height: 20px;
    background: linear-gradient(90deg, rgb(244, 237, 144) 60%, rgb(244, 237, 144) 60%);
    outline: none;
    opacity: 1;
    -webkit-transition: 0.2s;
    transition: opacity 0.2s;
    border-radius: 12px;
    box-shadow: 0px 0.1px 10px -2px #000000;
}
document.getElementById('myRange').addEventListener('input', function(){sliderChange(this.value)});

function sliderChange(val) {
    document.getElementById('myRange').style.background = 'linear-gradient(90deg, rgb(117, 252, 117) ' + val + '%, rgb(244, 237, 144) ' + val + '%);';

    if (val == 6000) {
        var value = '6,000+';
    } else {
        var value = val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    }

    document.getElementById('sqftValue').innerHTML = value;
    var base = val * 0.12;
    var discount = base * 0.2;
    var cost = base - discount;
    document.getElementById('cost').innerHTML = cost.toFixed(0);
}

我在这里缺少什么?

最佳答案

尝试从您要设置的值末尾删除分号。

range.style.background = '线性梯度(90deg, rgb(117, 252, 117) ' + val + '%, rgb(244, 237, 144) ' + val + '%)';

上面的值应该是这样的。

range.style.background = '线性梯度(90deg, rgb(117, 252, 117) ' + val + '%, rgb(244, 237, 144) ' + val + '%)'

const range = document.getElementById('myRange')

range.addEventListener('input', function(){
  sliderChange(this.value)
});

function sliderChange(val) {
    range.style.background = 'linear-gradient(90deg, rgb(117, 252, 117) ' + val + '%, rgb(244, 237, 144) ' + val + '%)';
}
.slider{
    -webkit-appearance: none;
    width: 100%;
    height: 20px;
    background: linear-gradient(90deg, red 60%, blue);
    outline: none;
    opacity: 1;
    -webkit-transition: 0.2s;
    transition: opacity 0.2s;
    border-radius: 12px;
    box-shadow: 0px 0.1px 10px -2px #000000;
}
<input type="range" min="1000" max="6000" value="2000" step="100" class="slider" id="myRange" name="myRange" />

此外,使用两个百分比值不会产生任何作用。

关于javascript - 通过 Javascript 更改范围 slider 背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58534165/

相关文章:

Javascript/React(使用 Gulp/Babel)-无法导入

html - 有没有办法在大屏幕上设置自动宽度?

javascript - 如何提取两个字符之间的字符串?

javascript - ES6 : Access two different scopes (class-global and object-local) in the same function

javascript - AngularJS - 从服务访问 Controller 内的元素

html - 过渡在页面加载时无法正确显示

html - 移动条纹适用于背景图像但不适用于背景渐变

javascript - 在 React 中处理组件状态的正确方法是什么?

javascript - 如何使用按钮更改网页上的字体颜色?

html - 将标题设置为始终从照片的左下角开始