我正在尝试使用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()" />
答案 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();
}