<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>图片切换</title>
<style>
body {
margin: 20px;
padding: 0;
background:
}
.container {
max-width: 760px;
margin: auto;
border:
background:
}
.main-img img,
.imgs img {
width: 100%;
}
.imgs {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 5px;
}
@keyframes fadeIn {
to {
opacity: 1;
}
}
.fade-in {
opacity: 0;
animation: fadeIn 0.5s ease-in-out 1 forwards;
}
</style>
</head>
<body>
<div class="container">
<!-- 大图 -->
<div class="main-img">
<img src="img/img1.jpg" alt="" srcset="" id="current">
</div>
<div class="imgs">
<img src="img/img1.jpg" alt="" srcset="">
<img src="img/img2.jpg" alt="" srcset="">
<img src="img/img3.jpg" alt="" srcset="">
<img src="img/img4.jpg" alt="" srcset="">
<img src="img/img5.jpg" alt="" srcset="">
<img src="img/img6.jpg" alt="" srcset="">
<img src="img/img7.jpg" alt="" srcset="">
<img src="img/img8.jpg" alt="" srcset="">
</div>
</div>
<script>
const current = document.getElementById('current');
const imgs = document.querySelectorAll(".imgs img");
const opacity = 0.4; // 不透透明度 0 完全透明, 1 不透明
imgs[0].style.opacity = opacity; // 对第一个家透明度
imgs.forEach(function (img) {
img.addEventListener('click', function (e) { // 给单个img添加点击事件
// 去掉所有图片上的透明度
imgs.forEach(img => (img.style.opacity = 1)); // 去除所有的img的style样式透明度
current.src = e.target.src; //跟环地址
current.classList.add('fade-in'); // 给当前的img添加动画
setTimeout(function () {
current.classList.remove('fade-in')
}, 500);
e.target.style.opacity = opacity;
})
});
</script>
</body>
</html>