使用继承方式制作;
步骤:
一,先创建class父类,然后获取标签
二,然后是切换的代码了,需要用到this和箭头函数,其中的this是直接指向切换的对象
最后就是创建子类,并继承tab切换父类
<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
.box{
width: 500px;
/* height: 400px; */
margin: 20px auto;
border: 2px solid black;
}
.box ul{
display: flex;
justify-content: center;
}
li{
width: 99px;
line-height: 35px;
text-align: center;
background-color: rgb(171, 126, 126);
font-size: 15px;
font-weight: bold;
border-right: 1px solid pink;
cursor: pointer;
}
.bg{
background-color: violet !important;
}
h1{
display:none;
}
.show{
display: block !important;
}
img{
width: 500px;
}
</style>
</head>
<body>
<div class="box">
<ul>
<li class="bg">列表一</li>
<li>列表二</li>
<li>列表三</li>
<li>列表四</li>
<li>列表五</li>
</ul>
<h1 class="show"><img src="./imgs/1.jpg" alt=""></h1>
<h1><img src="./imgs/2.jpg" alt=""></h1>
<h1><img src="./imgs/3.jpg" alt=""></h1>
<h1><img src="./imgs/4.jpg" alt=""></h1>
<h1><img src="./imgs/5.jpg" alt=""></h1>
</div>
</body>
<script>
// 继承方法制作
//创建class类
class tab {
constructor(ele){
//获取操作标签
this.lis=ele.querySelectorAll('li')
this.hs=ele.querySelectorAll('h1')
}
//切换选项的方法
qh(){
for(let i=0; i<this.lis.length; i++){
//给每个li添加点击事件
this.lis[i].onclick= ()=>{
//清除每个li标签的样式
for(let j=0; j<this.hs.length; j++){
this.lis[j].className=''
this.hs[j].className=''
}
//给当前点击的li添加样式
this.lis[i].className='bg'
this.hs[i].className='show'
}
}
}
}
//创建子类,并继承tab父类
class tt1 extends tab{
constructor(ele){
super(ele)
}
}
//获取大盒子对象
let box1 = document.querySelector('.box')
//实例子对象
let T1=new tt1(box1)
T1.qh()
</script>