JavaScript实现Tab标签页切换的最简便方式

1.第一种方式:

HTML

<div class="tab-head">
    <h2 id="tab1" onmouseover="changeTab1()" class="selected">1</h2>
    <h2 id="tab2" onmouseover="changeTab2()">2</h2>
    <h2 id="tab3" onmouseover="changeTab3()">3</h2>
</div>
<div class="tab-content">
     <div id="c1" class="show">content1</div>
     <div id="c2">content2</div>
     <div id="c3">content3</div>
</div>

CSS

1 h2 {border-top: solid cornflowerblue 1px;border-left: solid cornflowerblue 1px;width: 50px;height: 25px; margin: 0;float: left; text-align: center; }
2 .tab-content {border: solid cornflowerblue 1px;width: 152px; height: 100px;} 
3 .tab-content div{ display: none;} 
4 .selected {background-color: cornflowerblue; } 
5 .tab-content .show{ display: block;}

JS

var tab1 = document.getElementById('tab1'),
tab2 = document.getElementById('tab2'), 
tab3 = document.getElementById('tab3'),
c1 = document.getElementById('c1'),
c2 = document.getElementById('c2'),
c3 = document.getElementById('c3');

function changeTab1(){
    tab1.className = 'selected';
    tab2.className = '';
    tab3.className = '';
    c1.className = 'show' ;
    c2.className = '';
    c3.className = '';
} 
function changeTab2() {
    tab1.className = '';
    tab2.className = 'selected';
    tab3.className = '';
    c1.className = '';
    c2.className = 'show';
    c3.className = '';
}
function changeTab3() {
    tab1.className = '';
    tab2.className = '';
    tab3.className = 'selected';
    c1.className = '' ;
    c2.className = '';
    c3.className = 'show';
}

第二种方法:

HTML

<div class="tab-head"> 
    <h2 onmouseover="changeTab(0)" class="selected">1</h2> 
    <h2 onmouseover="changeTab(1)">2</h2> 
    <h2 onmouseover="changeTab(2)">3</h2> 
</div> 
<div class="tab-content"> 
    <div class="show">content1</div> 
    <div>content2</div> 
    <div>content3</div> 
</div>

JS

var tabs = document.getElementsByClassName('tab-head')[0].getElementsByTagName('h2'),
contents = document.getElementsByClassName('tab-content')[0].getElementsByTagName('div'); 
function changeTab(index) { 
    for(var i = 0, len = tabs.length; i < len; i++){ 
        if(i === index) {
            tabs[i].className = 'selected';
            contents[i].className = 'show'; 
        }else{
            tabs[i].className = '';
            contents[i].className = '';
        } 
    }
}

 

 

第三种方法:

HTML

<div class="tab-head"> 
    <h2 onmouseover="changeTab(this)" class="selected">1</h2>         
    <h2 onmouseover="changeTab(this)">2</h2> 
    <h2 onmouseover="changeTab(this)">3</h2> 
</div> 
<div class="tab-content"> 
    <div class="show">content1</div> 
    <div>content2</div> 
    <div>content3</div> 
</div>    

JS

var tabs = document.getElementsByClassName('tab-head')[0].getElementsByTagName('h2'),
contents = document.getElementsByClassName('tab-content')[0].getElementsByTagName('div');
function changeTab(tab) { 
    for(var i = 0, len = tabs.length; i < len; i++){ 
        if(tabs[i] === tab){
            tabs[i].className = 'selected';
            contents[i].className = 'show';
        }else{
            tabs[i].className = '';
            contents[i].className = '';
        }
    }
}

 

第四种方法(最简洁):

HTML

<div class="tab-head"> 
  <h2 class="selected">1</h2> 
  <h2>2</h2> 
  <h2>3</h2> 
</div> 
<div class="tab-content"> 
  <div class="show">content1</div> 
  <div>content2</div> 
  <div>content3</div> 
</div>

JS

var tabs = document.getElementsByClassName('tab-head')[0].getElementsByTagName('h2'),
contents = document.getElementsByClassName('tab-content')[0].getElementsByTagName('div');
(function changeTab(tab) { 
  for(var i = 0, len = tabs.length; i < len; i++) {
    tabs[i].onmouseover = showTab;
  }
})();
function showTab() {
  for(var i = 0, len = tabs.length; i < len; i++) {
    if(tabs[i] === this) {
      tabs[i].className = 'selected';
      contents[i].className = 'show';
    } else {
      tabs[i].className = '';
      contents[i].className = '';
    }
  }
}

 

posted @ 2018-01-02 14:51  紫云传芳  阅读(600)  评论(0)    收藏  举报