需求:用户点击小图片,页面背景会先显示对应的大图片
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
<title></title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
.wrapper {
width: 1000px;
height: 475px;
margin: 0 auto;
margin-top: 100px;
}
.tab {
border: 1px solid #ddd;
border-bottom: 0;
height: 36px;
width: 320px;
}
.tab li {
position: relative;
float: left;
width: 80px;
height: 34px;
line-height: 34px;
text-align: center;
cursor: pointer;
border-top: 4px solid #fff;
}
.tab span {
position: absolute;
right: 0;
top: 10px;
background: #ddd;
width: 1px;
height: 14px;
overflow: hidden;
}
.products {
width: 1002px;
border: 1px solid #ddd;
height: 476px;
}
.products .main {
float: left;
display: none;
}
.products .main.selected {
display: block;
}
.tab li.active {
border-color: red;
border-bottom: 0;
}
</style>
</head>
<body>
<div class="wrapper">
<ul class="tab">
<li class="tab-item active">国际大牌<span>◆</span></li>
<li class="tab-item">国妆名牌<span>◆</span></li>
<li class="tab-item">清洁用品<span>◆</span></li>
<li class="tab-item">男士精品</li>
</ul>
<div class="products">
<div class="main selected">
<a href="###"><img src="images/guojidapai.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="images/guozhuangmingpin.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="images/qingjieyongpin.jpg" alt="" /></a>
</div>
<div class="main">
<a href="###"><img src="images/nanshijingpin.jpg" alt="" /></a>
</div>
</div>
</div>
<script>
/* 点击上方li元素
1. li元素排他: (1)兄弟移除类名active (2)自己新增类名active
2. main盒子排他: (1)兄弟移除类名selected (2)自己新增类名selected
*/
//1.获取元素
const liList = document.querySelectorAll('.tab>li')
const mainList = document.querySelectorAll('.products>.main')
//2.注册事件
for (let i = 0; i < liList.length; i++) {
liList[i].addEventListener('click', function () {
//3.事件处理: 排他
//(1)干掉其他兄弟
document.querySelector('.tab>.active').classList.remove('active')
document.querySelector('.products>.selected').classList.remove('selected')
//(2)复活自己
liList[i].classList.add('active')
mainList[i].classList.add('selected')
})
}
</script>
</body>
</html>
效果展示: