选项卡的动态实现

实现的效果图
在这里插入图片描述
实现的代码:
css:

<style>
        *{
            margin:0;
            padding:0;
        }
        #tabBox{
            width: 500px;
            margin: 20px auto;
        }
        #tabBox .tab{
            position: relative;
            top: 2px;
        }
        #tabBox .tab li{
            list-style: none;
            padding: 0 10px;
            height: 35px;
            line-height: 35px;
            border: 2px solid #AAA;
            float: left;
            margin-right: 10px;
           background: #EEE;
           cursor: pointer;
        }
        #tabBox .tab li.active{
           
            background: #fff;
            border-bottom-color: #fff;
        }
        #tabBox div{
            padding:10px;
            height: 100px;
            border: 2px solid #AAA;
            display: none;
            background-color: #fff;
        }
        #tabBox .clearfix::after{
            content: '';
            display: block;
            clear: both;
        }
        #tabBox div.active{
            display: block;
        }
 </style>

html:

<section id="tabBox">
        <ul class="tab clearfix">
            <li class="active">编程</li>
            <li>读书</li>
            <li>运动</li>
        </ul>
        <div class="active">编程可以使我“赚取高薪”</div>
        <div>读书可以使我“修身养性”</div>
        <div>运动可以使我“身体健康”</div>
</section>

js-使用自定义属性:

<script>
        var tabBox=document.getElementById('tabBox'),
        tabList=document.getElementsByTagName('li'),
        content=document.getElementsByTagName('div');
        function changeTab(index){
            // 1.清空所有LI和DIV样式
            for(var i=0;i<tabList.length;i++){
                tabList[i].className='';
                content[i].className='';
            }
            // 2.让点击的这个LI和DIV有选中样式
            tabList[index].className='active';
            content[index].className='active';
        }
        // 自定义属性绑定点击事件
        for(var i=0;i<tabList.length;i++){
            tabList[i].n=i;
            tabList[i].onclick=function (){
                changeTab(this.n);
            }
        }
</script>

绑定点击事件还可以使用闭包如下:

	for(var i=0;i<tabList.length;i++){
		tabList[i].onclick=(function (i){
			return function (){
				changeTab(i);
			};
	})(i);
}

还可使用let的方法实现:

 for(let i=0;i<tabList.length;i++){
            tabList[i].onclick=function (){
                changeTab(i);
            }
        }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值