使用Javascript切换图像src属性

时间:2012-09-01 07:31:21

标签: javascript imageurl

我正在尝试使用Javascript更改HTML图像src。我有两个图像Plus.gif和Minus.gif。我已经插入了HTML img标签,并编写了一个Javascript函数来更改单击时src图像。

问题是我想在用户点击图片时再次将其更改回来。 例如,当加载页面时,Plus.gif会显示,当用户点击它时,图像会更改为Minus.gif

我希望如此,当图片为Minus.gif并且用户点击它时,应将其更改为Plus.gif

这是我的Javascript函数:

<script language="javascript" type="text/javascript">
  function chngimg() {
    var img = document.getElementById('imgplus').src; //= 'Images/Minus.gif';

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

  }
</script>

图片代码:

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

3 个答案:

答案 0 :(得分:9)

查看我为使其正常工作所做的更改

<script language="javascript" type="text/javascript">
    function chngimg() {
        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>

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

希望能解决你的问题。

答案 1 :(得分:2)

一种方法是在函数中添加 toggle 变量:

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

请注意,使用精灵来做这种事情是一种更好的做法。如果你使用的是两张图片,那么用户体验会很笨拙,因为第一次点击图片时,第二张图片会加载时会有轻微的延迟。

理想情况下,您可以将这两个图像作为精灵表,并使用JQuery。然后你可以这样做。

<强> HTML

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

<强> CSS

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

<强>的Javascript

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

答案 2 :(得分:1)

我已经成功地在纯JS中使用这个通用解决方案来解决切换img url的问题:

function toggleImg() {
  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;
}

然后在您使用的任何事件处理程序中调用toggleImg()....

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