3

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 class="tooltip" id="speakerbtn"><img src="images/images/speaker-icon.png" class="header-nav-button" id="myImage">
                <span class="tooltiptext">Sound</span>
              </div>
 let image = document.getElementById('myImage');

    image.addEventListener('click', function(){
        changeImage();
    });

    function changeImage(){
        image.src = 'images/images/volume-mute-icons.png';  
    } 
1
  • You should check what the current state is to decide on what image src should be Commented Jul 23, 2022 at 7:28

2 Answers 2

2

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);
    }

Sign up to request clarification or add additional context in comments.

Comments

1

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!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.