JavaScript 仅图像悬停

JavaScript Only Image Hover

这纯粹是为了学习目的;我知道 CSS 是这种情况下的首选方法。

我知道在 JavaScript 中,您可以使用内联事件处理将鼠标悬停在图像上,如下所示:

<img src="image.png" onMouseover="src='image2.png'" onMouseout="src='image.png'">

而且我知道您可以在您的站点中安装 jQuery,然后执行以下代码或类似的代码:

HTML:

<img src="image.png" id="image-hover">

jQuery:

$(document).ready(function() {
        $( "#hover-example" ).mouseover(function(){
            $(this).attr("src", "image-hover.png");
        });

        $( "#hover-example" ).mouseout(function(){
            $(this).attr("src", "image.png");
        });
    });

我想知道如何使用 JavaScript-only 来生成该输出,但使用外部脚本而不是内联事件处理。我试过浏览各种 Stack Overflow 和 Google 搜索,但大多数情况下它们会导致使用 jQuery。将简单的内联 JavaScript 应用到外部脚本会这么复杂吗?

谢谢!

由于您对普通 JavaScript 实施感兴趣,请查看 mouseover 事件的文档。

您可以通过这样做来达到您想要的结果:

var img = document.getElementById('image-hover');

img.addEventListener('mouseenter', function() {
    this.src = 'image-hover.png';
}, false);

img.addEventListener('mouseleave', function() {
    this.src = 'image.png';
}, false);
var image = document.getElementById("hover-example");
image.onmouseover = function() {  image.src = "image-hover.png"; }
image.onmouseout = function() {  image.src = "image.png"; }

几乎一样

var img = document.getElementById('image-hover');

img.addEventListener('mouseenter', function() {
    this.src = 'image-hover.png';
}, false);

img.addEventListener('mouseleave', function() {
    this.src = 'image.png';
}, false);