JavaScript 使用 onmouseover 和 onmouseout 更改图像

JavaScript changing images with onmouseover and onmouseout

我在 Stack Overflow 上查看了类似的问题和答案,但我无法开始工作。当页面加载时一切都找到了但是当我将鼠标悬停在它上面时不显示新的 gif。

在浏览器中检查代码时,它似乎在两个图像之间切换。

<!DOCTYPE html>
<html>
<head>
<script>


function normalImg() {
  document.getElementById("smile").src = "/smiley.gif"
}
function singing() {
  document.getElementById("smile").src = "/sing.gif"
}

</script>
</head>
<body>


<img onmouseout="normalImg()" border="0" src="smiley.gif" alt="Smiley" width="32" height="32" id="smile" 
onmouseover="singing()" border="0" src="sing.gif" alt="singing" width="32" height="32">


<p>onmouse out and onmouseover changing images</p>

</body>
</html>

在 gif 路径的开头不需要 /

替换 document.getElementById("smile").src = "/smiley.gif"document.getElementById("smile").src = "smiley.gif"

sing.gif

也一样

与其使用 javascript 在鼠标移开和鼠标悬停时更改图像源,不如仅根据悬停更改图像源。

看看这个: CSS: Change image src on img:hover

  • Hover 处理 mouseenter 事件和 mouseleave 事件。

  • 鼠标悬停最适用于您只关心鼠标何时越过边界进入元素而您并不真正关心鼠标离开时会发生什么的情况。如果你想在元素上触发一些事件。

标签内应该只有一个src属性,可以试试下面的代码:

<!DOCTYPE html>
<html>
<head>
<script>


function singing() {
  document.getElementById("smile").src = "https://upload.wikimedia.org/wikipedia/commons/0/06/180717_%EC%97%B4%EB%A6%B0%EC%9D%8C%EC%95%85%ED%9A%8C_%ED%8A%B8%EC%99%80%EC%9D%B4%EC%8A%A4_%2818%29.jpg"
  document.getElementById("smile").alt="smiling"
}

function crying() {
  document.getElementById("smile").src = "https://upload.wikimedia.org/wikipedia/commons/c/cd/Chou_Tzuyu_at_the_Golden_Disc_Awards_2019.png"
  document.getElementById("smile").alt="crying"
}

</script>
</head>
<body>


<img onmouseover="singing()" onmouseout="crying()" src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chou_Tzuyu_at_the_Golden_Disc_Awards_2019.png" alt="singing" width="100" height="100" id="smile">


<p>onmouse out and onmouseover changing images</p>

</body>
</html>