原生JS写Tab切换

						## 原生JS实现Tab切换 ##

本人是前端菜鸟一枚,喜欢钻研前端,前端的可视化界面带来的舒适,即可编写就可以看到效果界面,成就感满满!
这里写图片描述
废话不多说,开始撸代码!

这里写代码片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    *{
        margin: 0;
        padding: 0;
    }
    #outer{
        width: 450px;
        margin: 10px auto;
    }
    #tab{
        overflow: hidden;
        zoom:1;
        background: #000;
        border:1px solid #000;
    }
    #tab li{
        float:left;
        color:#fff;
        height:30px;
        cursor:pointer;
        line-height:30px;
        list-style-type:none;
        padding:0 20px;
    }
    #tab li.current{
        color:#000;
        background:#ccc;
    }
    #content{
        border:1px solid #000;
        border-top-width:0;
    }
    #content ul{
        line-height:25px;
        display:none;
        margin:0 30px;
        padding:10px 0;
    }
    </style>
    <script>
    window.onload=function(){
       var tab = document.getElementById("tab").getElementsByTagName("li");
       var content = document.getElementById("content").getElementsByTagName("ul");
       for(var i = 0; i<tab.length;i++){
           tab[i].index=i;
           tab[i].onmouseover=function(){
                for(var n = 0; n<tab.length;n++){
                    tab[n].className="";
                    this.className="current";
                }
                for(var n = 0;n<content.length;n++){
                    content[n].style.display = "none";
                    content[this.index].style.display="block"
                }
           }
       }
    }
    </script>
</head>
<body>
    <div id="outer">
        <ul id="tab">
            <li class="current">第一课</li>
            <li>第二课</li>
            <li>第三课</li>
        </ul>
        <div id="content">
            <ul style="display: block;">
                <li>网页特效原理分析</li>
                <li>响应用户操作</li>
                <li>提示框效果</li>
                <li>事件驱动</li>
                <li>元素属性操作</li>
            </ul>
            <ul>
                    <li>网ddddddddd</li>
                    <li>响应用户操作</li>
                    <li>提示框效果</li>
                    <li>事件驱动</li>
                    <li>元素属性操作</li>
                    <li>网ddddddddd</li>
                    <li>响应用户操作</li>
                    <li>提示框效果</li>
                    <li>事件驱动</li>
                    <li>元素属性操作</li>
            </ul> 
            <ul>
                    <li>AAAAAAAAAAAAA</li>
                    <li>响应用户操作</li>
                    <li>提示框效果</li>
                    <li>事件驱动</li>
                    <li>元素属性操作</li>
            </ul>
        </div>  
    </div>
</body>
</html>

以上就是Tab切换代码;
这个不是动态更改的,只是写好的静态数据,点击相应的标签显示对应的内容。

思路总结:

  • 1.写好静态数据页面
  • 2.获取Tab标签和内容li的伪数组
  • 3.然后遍历Tab伪数组,tab[i].inidex=i 将 i的值存入tab[i]中;
  • 4.然后通过onmouseover事件,在函数中设置Tab和li属性就OK!


代码中要是有哪些不好地方,欢迎指责。

17:41
2018/8/26

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的例子: HTML: ```html <div class="tab"> <button class="tablinks" onclick="openTab(event, 'tab1')">Tab 1</button> <button class="tablinks" onclick="openTab(event, 'tab2')">Tab 2</button> <button class="tablinks" onclick="openTab(event, 'tab3')">Tab 3</button> </div> <div id="tab1" class="tabcontent"> <h3>Tab 1 Content</h3> <p>Some text...</p> </div> <div id="tab2" class="tabcontent"> <h3>Tab 2 Content</h3> <p>Some text...</p> </div> <div id="tab3" class="tabcontent"> <h3>Tab 3 Content</h3> <p>Some text...</p> </div> ``` CSS: ```css /* 隐藏所有tab内容 */ .tabcontent { display: none; } /* 标签页按钮样式 */ .tab button { background-color: #eee; border: none; color: black; padding: 10px 20px; cursor: pointer; } /* 激活的标签页按钮样式 */ .tab button.active { background-color: #ccc; } /* 标签页内容样式 */ .tabcontent { padding: 20px; border: 1px solid #ccc; } /* 第一个标签页默认显示 */ #tab1 { display: block; } ``` JavaScript: ```javascript function openTab(event, tabName) { // 获取所有的 tab 内容 var tabcontent = document.getElementsByClassName("tabcontent"); // 隐藏所有的 tab 内容 for (var i = 0; i < tabcontent.length; i++) { tabcontent[i].style.display = "none"; } // 获取所有的 tab 按钮 var tablinks = document.getElementsByClassName("tablinks"); // 将所有的 tab 按钮样式设置为非激活状态 for (var i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace(" active", ""); } // 显示当前选中的 tab 内容 document.getElementById(tabName).style.display = "block"; // 设置当前选中的 tab 按钮为激活状态 event.currentTarget.className += " active"; } ``` 当用户点击任意一个标签页按钮时,`openTab`函数会被调用,隐藏所有标签页内容,将当前标签页内容设置为显示状态,同时将当前标签页按钮样式设置为激活状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值