I’m have a slider that goes from 1 – 3, I’d like my image src to change depending on what the slider is set to. I’ve tried to do this using an else if statement but it doesn’t seem to be changing?
HTML
JavaScript
x
4
1
<span id="valBox"></span>
2
<input type="range" min="1" max="3" step="1">
3
<img id="demo" src="default-image.png">
4
Javascript
JavaScript
1
10
10
1
<script>
2
if (step === 1) {
3
document.querySelector("input.step").innerHTML.src = "one-image.png";
4
} else if (step === 2) {
5
document.querySelector("input.step").innerHTML.src = "two-image.png";
6
} else if (step === 3) {
7
document.querySelector("input.step").innerHTML.src = "three-image.png";
8
};
9
</script
10
Advertisement
Answer
You need to run your JavaScript in an onchange
event handler.
JavaScript
1
12
12
1
const imageElement = document.getElementById("demo");
2
const selectorElement = document.getElementById("selector");
3
selectorElement.onchange = () => {
4
const step = selectorElement.valueAsNumber;
5
if (step === 1) {
6
imageElement.src = "one-image.png";
7
} else if (step === 2) {
8
imageElement.src = "two-image.png";
9
} else if (step === 3) {
10
imageElement.src = "three-image.png";
11
}
12
}
JavaScript
1
3
1
<span id="valBox"></span>
2
<input id="selector" type="range" min="1" max="3" step="1">
3
<img id="demo" src="default-image.png">