web creating

POROA

【jQuery】タブ切り替え。プラグインなしで簡単実装

サンプル
  • タブ1
  • タブ2
  • タブ3
  • タブ4
  • 内容1
  • 内容2
  • 内容3
  • 内容4

上記のようなシンプルなタブ切り替えはjQueryのプラグインなしで簡単に実装できます。

ソース

【CSS】
ul {
  list-style:none;
}

ul.tabbox li {
  float:left;
  width:25%;
  height:40px;
  line-height:40px;
  border:1px solid #c0c0c0;
  text-align:center;
  cursor:pointer;
  box-sizing: border-box;
}

ul.textbox {
  width:100%;
  border:1px solid #c0c0c0;
  box-sizing: border-box;
  height:200px;
  padding:10px;
}

ul.textbox li {
  display:none; /* ① */
}

ul.textbox li.hide {
  display:block
}

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  font-size: 0;
  clear: both;
  visibility: hidden;
}

.selected {
  background-color:#000;color:#fff;
}

【HTML】
<div class="clearfix">
  <ul class="tabbox clearfix">
    <li class="selected">タブ1</li>
    <li>タブ2</li>
    <li>タブ3</li>
    <li>タブ4</li>
  </ul><!-- tabbox -->

  <ul class="textbox clearfix">
    <li class="hide">内容1</li>
    <li>内容2</li>
    <li>内容3</li>
    <li>内容4</li>
  </ul><!-- textbox -->
</div>

【javascript】
$(function(){ 
    $('ul.tabbox > li').on('click',function(){
        var index = $('ul.tabbox > li').index(this);
	$('ul.tabbox > li').removeClass('selected'); //②
	$(this).addClass('selected'); //③
	$('ul.textbox > li').removeClass('hide'); //④
	$('ul.textbox > li').eq(index).addClass('hide'); //⑤
    }); 
});

説明

簡単に解説すると、①でtextboxの非表示の分をdisplay:noneで非表示にします。
②でtabboxのliに付与されたclass「selected」をすべて削除します。
そして③でクリックされてたliに「selected」を付与します。
同じく
④でtextboxのclass「hide」をすべて削除し、⑤でクリックされた順番のliに「hide」を付与させて表示させます。
著者:poroa | 投稿日:2016年08月08日 | カテゴリ:jQuery
  • ■同じカテゴリの記事
  • ■よく見られている記事
■最新記事
■カテゴリ一覧
CSS
Excel
Google Analytics
HTML
jQuery
PHP
SEO
WordPress
ホームページ作成
ホームページ作成講座
未分類
楽天
■アーカイブ
2018年9月
2016年12月
2016年11月
2016年10月
2016年9月
2016年8月
■ランキング