I’m trying to write a Javascript function to go alongside a gauge that I copied online, the gauge works like this:
const gaugeElement = document.querySelector(".gauge");
function setGaugeValue(gauge, value) {
if (value < 0 || value > 1) {
return;
}
gauge.querySelector(".gauge__fill").style.transform = `rotate(${value / 2}turn)`;
gauge.querySelector(".gauge__cover").textContent = `${Math.round(value * 100)}%`;
}
setGaugeValue(gaugeElement, 0.26);
<div class="card">
<div class="FuelLevelText">
<h3>Fuel Level</h3>
</div>
<div class="gauge">
<div class="gauge__body">
<div id="gaugecolor" class="gauge__fill"></div>
<div class="gauge__cover"></div>
</div>
</div>
</div>
There’s also a bit of CSS that goes with this
This works fine to change the gaugeElement value and will change the percentage on screen, however I’d like to add a rule so if the value goes below 0.05 or 5% the gauge fill background-color turns red to indicate it’s running low. I’m very very new to coding so I’m struggling to find a resource online that has something similar to what I need that I can adapt to my needs.
I tried adding a line:
if (gaugeElement, '< 0.05') {
function changebackground(color) {
#gaugecolor = color;
}
changebackground('red');
}
However I don’t know enough Javascript to know if this is even targeting the right section?
>Solution :
If the value goes below 0.05 or 5% the gauge fill background-color turns red.
const gaugeElement = document.querySelector(".gauge");
function setGaugeValue(gauge, value) {
if (value < 0 || value > 1) {
return;
}
gauge.querySelector(".gauge__fill").style.transform = `rotate(${value / 2}turn)`;
gauge.querySelector(".gauge__cover").textContent = `${Math.round(value * 100)}%`;
if (value < 0.05) {
gauge.querySelector(".gauge__fill").style.backgroundColor = 'red';
} else {
gauge.querySelector(".gauge__fill").style.backgroundColor = ''; // Reset the background color
}
}
setGaugeValue(gaugeElement, 0.26);