[TOC]

1. tab切换表单效果

使用原生JS来实现点击tab实现显示对应内容的效果:

<style>
    .tab ul, .tab li {
        list-style: none; margin: 0; padding: 0;
    }
    .tab {
        border: 1px solid #ccc; border-top: none;
    }
    .tab .tab-header::after {
        content: ''; display: block; clear: both;
    }
    .tab .tab-header > li {
        float: left; border: 1px solid #ccc;
        width: calc(25% - 2px);
        text-align: center;
        line-height: 30px; cursor: pointer;
    } 
    .tab .tab-header > li.active {
        background-color: #ccc; color: #fff;
    }
    .tab .tab-container > li {
        display: none; height: 100px; padding: 10px;
    }
    .tab .tab-container > li.active { display: block; }
</style>
<div class="tab">
    <ul class="tab-header">
        <li>HTML</li>
        <li class="active">CSS</li>
        <li>Javascript</li>
        <li>Http</li>
    </ul>
    <ul class="tab-container">
        <li> <p>HTML 的内容</p> </li>
        <li class="active"> <p>CSS 的内容</p> </li>
        <li> <p>Javascript 的内容</p> </li>
        <li> <p>Http 的内容</p> </li>
    </ul>
</div>
<script>
    var tabHeaders = document.querySelectorAll('.tab .tab-header>li')
    var tabPanels = document.querySelectorAll('.tab .tab-container>li')
    tabHeaders.forEach(function(tab){
        tab.onclick = function() {
            tabHeaders.forEach(function(node){
                node.classList.remove('active')
            })
            this.classList.add('active')
            var index = Array.prototype.indexOf.call(tabHeaders, this)
            tabPanels.forEach(function(node){
                node.classList.remove('active')
            })
            tabPanels[index].classList.add('active')
        }
    })  
</script>

results matching ""

    No results matching ""