在Web开发中,实现悬停时更改<img />
标签的src
属性可以通过多种方式来完成,这里我将介绍两种常见的方法:使用纯JavaScript和使用CSS伪类。
这种方法涉及到监听鼠标的悬停事件,并在事件触发时更改图像的src
属性。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Change Image on Hover</title>
<script>
window.onload = function() {
var img = document.getElementById('hoverImage');
img.onmouseover = function() {
this.src = 'path/to/new/image-on-hover.jpg';
};
img.onmouseout = function() {
this.src = 'path/to/original/image.jpg';
};
};
</script>
</head>
<body>
<img id="hoverImage" src="path/to/original/image.jpg" alt="Hover over me!">
</body>
</html>
在这个例子中,当鼠标悬停在图像上时,onmouseover
事件被触发,图像的src
属性会更改为另一张图片的路径。当鼠标移开时,onmouseout
事件被触发,图像的src
属性恢复为原始图片的路径。
这种方法利用CSS的:hover
伪类来实现视觉上的变化,但不会实际更改图像的src
属性。相反,它会显示另一张图像作为背景或覆盖层。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Change Image on Hover with CSS</title>
<style>
#hoverImage {
position: relative;
width: 300px; /* Set the desired width */
height: 200px; /* Set the desired height */
}
#hoverImage:hover::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('path/to/new/image-on-hover.jpg');
background-size: cover;
background-position: center;
opacity: 1;
transition: opacity 0.3s ease-in-out;
}
#hoverImage::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('path/to/new/image-on-hover.jpg');
background-size: cover;
background-position: center;
opacity: 0;
transition: opacity 0.3s ease-in-out;
}
</style>
</head>
<body>
<div id="hoverImage">
<img src="path/to/original/image.jpg" alt="Hover over me!">
</div>
</body>
</html>
在这个例子中,我们使用了一个<div>
元素来包裹<img>
标签,并在:hover
伪类中使用::after
伪元素来显示另一张图片。这种方法的好处是它不会更改实际的图像文件,而是通过CSS来控制显示效果。
这两种方法都可以用于各种场景,例如:
通过这些方法,你可以实现悬停时更改图像的视觉效果,提升用户体验。
领取专属 10元无门槛券
手把手带您无忧上云