Tab栏切换

1.将tab栏分为上下两部分,上面是导航栏,下面是各部分对应的内容。

2.tab栏导航栏部分,点击后样式改变,比如字体颜色、背景颜色改变

①定义一个类名:current,改变后的样式,先给第一个写该类名,其他的不写类名
②js获取所有对象,利用for循环遍历给每个对象绑定点击事件,并且设置属性index
③排他算法:利用for循环将所有对象设置类名为空,被点击的对象设置类名current
3.点击不同对象,出现不同的内容


①定义一个类名:items,其他的都隐藏起来
②获取全部对象,获取点击对象的索引号,在点击事件里再添加一个排他思想:利用for循环将所有内容设置隐藏,将对应的索引号的内容显示

html代码:

<div class="tab">

        <div class="tab-head">

            <ul>

                <li class="current"><a href="javasript:;" >

电视剧

                </a></li>

                <li><a href="javasript:;">

             新闻      

                </a></li>

                <li><a href="javasript:;">

                 电影  

                </a></li>

                <li><a href="javasript:;">

                综艺    

                </a></li>

            </ul>

        </div>

        <div class="tab-content">

<div class="items"> 我是电视剧模块</div>

<div> 我是新闻模块</div>

<div> 我是电影模块</div>

<div> 我是综艺模块</div>

        </div>

    </div>

css代码:

<style>

        *{

            /* 初始化 */

            margin:0;

            padding:0;

            box-sizing: border-box;

        }

        body{

            /* 视口高度 */

            height: 100vh;

            /* flex布局 */

            display: flex;

            justify-content: center;

            align-items: center;

        }

        ul{

            /* 去除小圆点 */

            list-style: none;

        }

        .tab{

            width: 250px;

            height: 200px;

            border:2px solid #ccc;

        }

        .tab-head ul{

            display: flex;

       

        }

        .tab-head ul li{

            display: flex;

            align-items: center;

        justify-content: center;

            height: 40px;

            /* 各占一份 */

            flex:1;

        }

        .tab-head ul li a{

            text-decoration: none;

            color:black

        }

        .current{

            color:#fff;

            background-color: red;

        }

        .current a{

            color:#fff!important;

        }

       

        .tab-content div{

            /* 其余隐藏 */

            display: none;

        }

        .tab-content .items

        {

            /* 第一个显示 */

            display: block;

        }

    </style>

 

js代码:

<script>

        // 获得所有的li

        var lis=document.querySelectorAll('li');

        // 获得.tab-content

        var tab_content=document.querySelector('.tab-content');

        // 获得.tab-content的子元素节点

        var item=tab_content.children;


 

        // 给所有的li绑定点击事件

        for(var i=0;i<lis.length;i++)

        {

            // 给所有li添加索引号

            lis[i].setAttribute('index',i);

       

            lis[i].addEventListener('click',function()

            {

                for(var i=0;i<lis.length;i++)

                {

                    // 移除所有li的类名

                    lis[i].className='';

                    // 移除所有.tab-content的子元素节点的类名

                    item[i].className='';

                }

                // 被点击的li添加current类名

                this.className='current';

                // 获得被点击li的索引号

                var index=this.getAttribute('index');

                item[index].className='items';

            })

        }

       

    </script>

 

HTML中实现Tab切换主要通过结合CSS样式和JavaScript(或jQuery)来完成。通常的实现方法包括以下几个步骤: 1. HTML结构:首先定义TabHTML结构,使用一组`<div>`或者`<ul>`和`<li>`标签来表示Tab按钮,使用另一组`<div>`来表示内容区域。 2. CSS样式:通过CSS设置Tab的样式,使得按钮和内容区域都有良好的视觉表现。通常会隐藏所有内容区域,只显示与当前选中的Tab按钮对应的内容区域。 3. JavaScript逻辑:使用JavaScript(或者更简洁的jQuery库)来添加事件监听,当用户点击不同的Tab按钮时,动态切换显示对应的内容区域,并隐藏其他内容区域。这通常涉及到修改内容区域的CSS样式,比如改变`display`属性。 下面是一个简单的示例代码: HTML: ```html <div class="tab-buttons"> <button class="tab-button active" onclick="tabSwitch(0)">Tab1</button> <button class="tab-button" onclick="tabSwitch(1)">Tab2</button> <button class="tab-button" onclick="tabSwitch(2)">Tab3</button> </div> <div id="content1" class="content active">内容1</div> <div id="content2" class="content">内容2</div> <div id="content3" class="content">内容3</div> ``` CSS: ```css .tab-buttons { /* 样式代码 */ } .tab-button { /* 样式代码 */ } .content { display: none; } .active { display: block; } ``` JavaScript (假设使用纯JavaScript): ```javascript function tabSwitch(index) { // 隐藏所有内容 var contents = document.getElementsByClassName('content'); for (var i = 0; i < contents.length; i++) { contents[i].style.display = 'none'; } // 显示选中的内容 var selectedContent = document.getElementById('content' + (index + 1)); selectedContent.style.display = 'block'; // 移除旧的激活状态 var buttons = document.getElementsByClassName('tab-button'); for (var i = 0; i < buttons.length; i++) { buttons[i].classList.remove('active'); } // 添加新的激活状态 buttons[index].classList.add('active'); } ``` 以上代码中,通过点击不同的按钮,JavaScript函数`tabSwitch`会被调用,并传入相应的索引值,从而切换显示对应的内容区域。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值