cssを使って以下のようにすることができます。
動作の概要
.img-container
内の.active
クラスの要素は、初期状態で透明度が0(見えない状態)で、位置は親要素の左上に固定されています。.img-container
にホバーすると、.active
クラスの要素の透明度が0から1に変わり、0.5秒かけて表示されます。
<!DOCTYPE html>
<html>
<head>
<title>hover.html</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.img-container {
position: relative;
}
.img-container .active {
position: absolute;
left: 0;
top: 0;
opacity: 0;
transition: 0.5s;
}
.img-container:hover .active {
opacity: 1;
}
</style>
</head>
<body>
<div class="img-container">
<img src="https://picsum.photos/id/10/300" alt="" >
<img src="https://picsum.photos/id/11/300" alt="" class="active">
</div>
</body>
</html>
あるいは、以下のシンプルな方法もあります。
<div>
<img src="https://picsum.photos/id/10/300" onmouseover="this.src = 'https://picsum.photos/id/11/300'" onmouseout="this.src = 'https://picsum.photos/id/10/300'">
</div>