I am currently working on an webinterface for my led. So I want to have 3 sliders, I can sent a hex value to my controller with. This is what i got so far:
<div class="main">
<div class="slideContainer">
<input type="range" class="slider" value="0" min="0" max="255" step="1" id="sliderRed" style="background: linear-gradient(to right, black 0%, red 70%);">
</div>
<div class="slideContainer">
<input type="range" class="slider" value="0" min="0" max="255" step="1" id="sliderGreen" style="background: linear-gradient(to right, black, green 70%);">
</div>
<div class="slideContainer">
<input type="range" class="slider" value="0" min="0" max="255" step="1" id="sliderBlue" style="background: linear-gradient(to right, black, blue 70%);">
</div>
</div>
and the JS to get the hex value I can send to my controller:
sliderRed.oninput = function () {
var red = sliderRed.value;
var green = sliderGreen.value;
var blue = sliderBlue.value;
color(red, green, blue);
}
sliderGreen.oninput = function () {
var red = sliderRed.value;
var green = sliderGreen.value;
var blue = sliderBlue.value;
color(red, green, blue);
}
sliderBlue.oninput = function () {
var red = sliderRed.value;
var green = sliderGreen.value;
var blue = sliderBlue.value;
color(red, green, blue);
}
function color(r, g, b) {
console.log(rgbToHex(r, g, b));
}
function rgbToHex(r, g, b) {
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
}
but when the result i get is not any close to the values from #000000
to #ffffff
i want to get. Instead i get values like #86122240
if i move the red slider.
The function color()
does work if i put in static values from my buttons.