Я пытаюсь управлять шириной фона дорожки ползунка диапазона с помощью 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%)' );
} );
Я записываю значения в консоль, и проценты кажутся правильными. Затем я подумал, что, возможно, я установил вручную смещение для перемещения большого пальца ползунка, но я этого не сделал, и фон кажется go от слишком маленького до слишком большого, когда вы перемещаете ползунок слева направо (это заставляет меня думать, что это проблема с множителем ...).
Я правильно подсчитал? Я вычитаю 1 из значения ползунка, чтобы иметь дело с позицией «0», а затем генерирую процентную ширину, в которой должен находиться ползунок. первый (чтобы убедиться, что они показывают, что на самом деле выбирает пользователь перед тем, как отправить его в магазин):
// Output value for CPU range slider
var sliderCPU = document.getElementById("cpu");
var outputCPU = document.getElementById("valueCPU");
outputCPU.innerHTML = sliderCPU.value;
sliderCPU.oninput = function() {
outputCPU.innerHTML = this.value;
}
// Set and output custom values for Memory range slider
var valuesRAM = [0,"256 MB","512 MB","1 GB","2 GB","3 GB","4 GB","5 GB","6 GB","7 GB","8 GB","9 GB","10 GB","11 GB","12 GB"];
var sliderRAM = document.getElementById('ram'),
outputRAM = document.getElementById('valueRAM');
sliderRAM.oninput = function(){
outputRAM.innerHTML = valuesRAM[this.value];
};
sliderRAM.oninput();
// Set and output custom values for SSD range slider
var valuesSSD = [0,"10 GB","20 GB","30 GB","40 GB","50 GB","60 GB","70 GB","80 GB","90 GB","100 GB","200 GB","300 GB","400 GB","500 GB"];
var sliderSSD = document.getElementById('ssd'),
outputSSD = document.getElementById('valueSSD');
sliderSSD.oninput = function(){
outputSSD.innerHTML = valuesSSD[this.value];
};
sliderSSD.oninput();