Skip to content Skip to sidebar Skip to footer

Toggle Image Src Attribute Using Javascript

I am trying to change the HTML image src using Javascript. I have two images Plus.gif and Minus.gif.I have inserted HTML img tag and have written a Javascript function to change th

Solution 1:

See the changes I made to make it working

<scriptlanguage="javascript"type="text/javascript">functionchngimg() {
        var img = document.getElementById('imgplus').src;
        if (img.indexOf('Plus.gif')!=-1) {
            document.getElementById('imgplus').src  = 'Images/Minus.gif';
        }
         else {
           document.getElementById('imgplus').src = 'Images/Plus.gif';
       }

    }
</script><imgid="imgplus"alt=""src="Images/Plus.gif"onmouseover="this.style.cursor='pointer'"onclick="chngimg()"   />

Hope that resolves your question.

Solution 2:

One way would be to add a toggle variable in your function:

var toggle = false;
functionchngimg() {
    if (toggle === true) {
        document.getElementById('imgplus').src  = 'Images/Minus.gif';
    } else {
       document.getElementById('imgplus').src = 'Images/Plus.gif';
       alert(img); 
    }
    toggle = !toggle; 
}

Note that it's a better practice to use a sprite for this kind of thing. If you're using two images, the user experience is going to be clunky, because the first time they click the image, there will be a slight delay while the second image loads.

Ideally you would have the two images as a sprite sheet, and be using JQuery. Then you could just do it like this.

HTML

<img id="imgplus" src="Images/Sprite.gif" onclick="chngimg()" />

CSS

#imgplus.clicked { background-position: 0 -30px; }

Javascript

functionchngimg() {
    $("#imgplus").toggleClass("clicked");
}

Solution 3:

I have successfully used this general solution in pure JS for the problem of toggling an img url:

functiontoggleImg() {
  let initialImg = document.getElementById("img-toggle").src;
  let srcTest = initialImg.includes('initial/img/url');
  let newImg = {
    'true':'second/img/url', 
    'false':'initial/img/url'}[srcTest];

  return newImg;
}

Then call toggleImg() inside whatever event handler you use....

someButton.addEventListener("click", function() {
  document.getElementById("img-toggle").src = toggleImg();
}

Post a Comment for "Toggle Image Src Attribute Using Javascript"