I'm pretty new to web dev so I'm currently working on a project to learn more JS. I'm trying to add a toggle function on a speaker icon as I want it to change/toggle its src from its normal state to the muted state (change the image src).
I know how to make it change once but I cannot change it back to its original state.
The code looks something like this:
<div id="speakerbtn"><img src="images/images/speaker-icon.png" id="myImage">
<span >Sound</span>
</div>
let image = document.getElementById('myImage');
image.addEventListener('click', function(){
changeImage();
});
function changeImage(){
image.src = 'images/images/volume-mute-icons.png';
}
CodePudding user response:
You can easily do that with ternary operator
If image src
equal isMuted
flag, then show the muteIcon
else show the voiceIcon
, on each toggle reverse the value of isMuted
.
const muteIcon = 'images/images/volume-mute-icons.png'
const voiceIcon = 'set/icon/path/here'
let isMuted = false
function changeImage() {
isMuted = !isMuted
image.src = (isMuted ? muteIcon : voiceIcon);
}
CodePudding user response:
Your code is working nice. Now give If
condition to your function.
for example.
function changeImage(){
if image.src === 'images/images/volume-mute-icons.png'
image.src = 'images/images/speaker-icon.png'
else
image.src = 'images/images/volume-mute-icons.png';
}
then it checks your image, if it is mute image it changes to speaker, if it is speaker image it changes to mute
happy coding!