使用JS确定范围滑块背景宽度

问题描述 投票:0回答:1

我正在尝试使用jQuery控制范围滑块的背景宽度。但是,为什么背景似乎与滑块的位置不匹配,我还是摸不着头脑。

您可以在这里看到工作页:https://qh.brightchoicemarketing.com/hosting/cloud-vps-hosting/(在Chrome或任何其他Webkit浏览器上查看)

这是我的代码:

// .chrome styling
    $( 'input' ).on( 'input', function( ) {
        var x = document.getElementById("cpu").max;
        var x = document.getElementById("ram").max;
        var x = document.getElementById("ssd").max;
        console.log(x);
        y = this.value - 1;
        console.log(y);
        var percentWidth = ((y / x) * 100);
        console.log(percentWidth);
        $( this ).css( 'background', 'linear-gradient(to right, #da0266 0%, #00aeff '+percentWidth +'%, #eef1f8 ' + percentWidth + '%, #eef1f8 100%)' );
    } );

我正在将值记录到控制台,并且百分比似乎正确。接下来,我想也许我已经设置了一个手动偏移量来移动滑块,但是我没有,并且当您从左向右移动滑块时,背景似乎从太小到太大(这使我认为它是一个倍增器问题...)。

我的数学正确吗?我从滑块值中减去1来处理“ 0”位置,然后生成滑块应位于的百分比宽度。

javascript jquery css google-chrome webkit
1个回答
0
投票

background-size: 105% 100% !important添加到此选择器:

input[type="range"] {
        outline: none; 
        transition: background 450ms ease-in;
        -webkit-appearance: none;
        cursor: pointer;
        border-radius: 16px;
        height: 15px;
        -webkit-box-shadow: 0px 2px 2px rgba(255, 255, 255, 0.25), inset 0px 1px 3px rgba(0, 0, 0, 0.3);
        background-size: 105% 100% !important
    }

似乎可以在Chrome和Firefox中为我工作

© www.soinside.com 2019 - 2024. All rights reserved.