多种方法实现tab切换效果(HTML+css+JavaScript)

HTML
<div class="box">
        <ol>
            <li class="active">1</li>
            <li>2</li>
            <li>3</li>
        </ol>
        <ul>
            <li class="active"><img src="images/1.jpg"></li>
            <li><img src="images/2.jpg"></li>
            <li><img src="images/3.jpg"></li>
        </ul>
    </div>
css
*{
    list-style: none;
    margin: 0;
    padding: 0;
}
.box{
    height: 600px;
    width: 500px;
    border: 1px solid #999;
    margin: 20px auto;
}
ol{
    height: 100px;
    background-color: #ccc;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
}
ol li{
    height: 50px;
    width: 100px;
    background-color: pink;
    line-height:50px;
    text-align: center;
    cursor: pointer;
}
ul li img{
    width: 500px;
    height: 500px;
    cursor: pointer;
}
ol li.active{
    background-color: rebeccapurple;
}
ul li{
    display: none;
}
ul li.active{
    display: block;
}
js
// 1、利用函数创建作用域
// var oli = document.querySelectorAll('ol>li')
// var uli = document.querySelectorAll('ul>li')
// for(var i=0;i<oli.length;i++){
//     function fn(i){
//         oli[i].onclick = function(){
//         for(var j=0;j<oli.length;j++){
//             oli[j].className = ''
//             uli[j].className = ''
//         }
//         this.className = 'active'
//         uli[i].className = 'active'
//     }
//     }
//     fn(i)
// }

//2、利用es6语法let变量自己创建的作用域
// var oli = document.querySelectorAll('ol>li')
// var uli = document.querySelectorAll('ul>li')
// for(let i=0;i<oli.length;i++){
//     oli[i].onclick = function(){
//         for(var j=0;j<oli.length;j++){
//             oli[j].className = ''
//             uli[j].className = ''
//         }
//         this.className = 'active'
//         uli[i].className = 'active'
//     }
// }

//3、设置下标
// var oli = document.querySelectorAll('ol>li')
// var uli = document.querySelectorAll('ul>li')
// for(var i=0;i<oli.length;i++){
//     oli[i].setAttribute('xiabiao',i)
//     oli[i].onclick = function(){
//         for(var j=0;j<oli.length;j++){
//             oli[j].className = ''
//             uli[j].className = ''
//         }
//         this.className = 'active'
//         var xiabiao = this.getAttribute('xiabiao')
//         uli[xiabiao].className = 'active'
//     }
// }


//4、对象
// var oli = document.querySelectorAll('ol>li')
// var uli = document.querySelectorAll('ul>li')
// for(var i =0;i<oli.length;i++){
//     oli[i].xiabiao = i
//     oli[i].onclick = function(){
//          for(var j=0;j<oli.length;j++){
//              oli[j].className = ''
//              uli[j].className = ''
//          }
//          this.className = 'active'
//          var xiabiao = this.xiabiao
//          uli[xiabiao].className = 'active'
//      
// }

//5、
// var oli = document.querySelectorAll('ol>li')
// var uli = document.querySelectorAll('ul>li')
// for(var i =0;i<oli.length;i++){
//     oli[i].xiabiao=i
//     oli[i].onclick = function(){
//         var active = document.querySelector('ol li.active')
//         active.className =''
//         this.className = 'active'

//         var ulActive = document.querySelector('ul li.active')
//         ulActive.className = ''
//         uli[this.xiabiao].className = 'active'
//     }
// }


//6、that
var oli = document.querySelectorAll('ol>li')
var uli = document.querySelectorAll('ul>li')
var active = document.querySelector('ol li.active')
var ulActive = document.querySelector('ul li.active')
for(var i=0;i<oli.length;i++){
    oli[i].xiabiao=i
    oli[i].onclick = function(){
        active.className = ''
        this.className = 'active'
        active = this

        ulActive.className = ''
        uli[this.xiabiao].className='active'
        ulActive = uli[this.xiabiao]
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值