menu
menu

jquery.cookie.jsでサイズ可変・スマホ対応のタブレイアウト | Webデザインラボ

キーワード検索

11月のアクセストップ10

  1. ( 1-) スマホサイトの作成・基本編
  2. ( 3↑) CSSだけでドロップダウンメニュー
  3. ( 2↓) CSSだけでサイズ可変・スマホ対応のアコーディオン
  4. ( 4-) HTML5・ページ作成の基本
  5. ( 5-) jQueryでドロップダウンメニュー
  6. ( 6-) スマホ・タブレット・PCの振り分けいろいろ
  7. ( 9↑) 表示しているブラウザの高さを取得してCSSのheightに指定
  8. ( 8-) Windows 10にApache2.4 VC11をインストール
  9. ( 7↓) JavaScriptで新しいウィンドウを開く
  10. (-↑) CSSだけでブロック要素の表示非表示(トグルボタン)
  • facebook6
  • はてなブックマーク3
  • Google+5
  • Pocket0
  • Twitter0

jquery.cookie.jsでサイズ可変・スマホ対応のタブレイアウト

  • Labs

jQuery

こんにちは(・∀・)

 今回は前回の投稿に引き続きサイズが可変してスマホにも対応して、さらにクッキーで制御したjQueryタブレイアウトのご紹介です。

サンプルデモ

 サンプルデモはこちら!


 サンプルは横幅100%で可変になっています。min-widthを400pxに設定してありますので、そのサイズまでブラウザ幅を縮めると横スクロールバーが出ます。


 アニメーションで動くタイプと普通にCSSで制御する2タイプです。サンプルはアニメーションの設定になっています。CSSの制御に変える場合はJSを書き換えてご利用ください。


HTML

 Google Hosted LibrariesからjQuery 1.x snippetを<head>内に読み込みます。

 今回はクッキーも使うのでjquery.cookie.jsをGitHubからダウンロードして<head>内にjquery.cookie.jsを読み込みます。


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="jquery.cookie.js"></script>

<div id="tab">
<ul id="tab-head">
<li id="tab-h1"><a href="#tab-b1">メニュー1</a></li>
<li id="tab-h2"><a href="#tab-b2">メニュー2</a></li>
<li id="tab-h3"><a href="#tab-b3">メニュー3</a></li>
<li id="tab-h4"><a href="#tab-b4">メニュー4</a></li>
<!--tab-head--></ul>
<div id="tab-body">
<div id="tab-b1">コンテント1</div>
<div id="tab-b2">コンテント2</div>
<div id="tab-b3">コンテント3</div>
<div id="tab-b4">コンテント4</div>
<!--tab-body--></div>
<!--tab--></div>
CSS

#tab {
	margin: 0 10px;
}
#tab-head {
	width: 400px;
	overflow: hidden;
}
#tab-head li {
	float: left;
}
#tab-head li a {
	display: block;
	width: 98px;
	height: 25px;
	text-align: center;
}
#tab-body {
	width: 100%;/*横幅はここで設定します。100%にすれば可変になります。*/
	min-width: 400px;
	position: relative;
	top: -1px;
	z-index: -1;
}
#tab-b1,#tab-b2,#tab-b3,#tab-b4 {
	height: 300px;
	padding: 10px;
	background: #fff;
	border: 1px solid #ccc;
}
#tab-b2,
#tab-b3,
#tab-b4 {
	display: none;
}
.tab1 {
	background: #eee;
	border-top: 1px solid #ccc;
	border-right: 1px solid #ccc;
	border-left: 1px solid #ccc;
}
.tab2 {
	background: #fff;
	border-bottom: 1px solid #fff;
}
JavaScript

/*アニメーションで制御する場合はこちら*/
$(document).ready(function(){
$("#tab-head li").addClass("tab1");
for(var i=0; i < $("#tab-body div").length; i++) {
var name = "cookie-tab";
if($.cookie(name)) {
if(($.cookie(name).indexOf(i)) != -1) {
$("#tab-body div").eq(i).show();
$("#tab-head li a").eq(i).addClass("tab2");
} else {
$("#tab-body div").eq(i).hide();
$("#tab-head li a").eq(i).removeClass("tab2");
}
}else{
$("#tab-body div").eq(0).show();
$("#tab-head li a").eq(0).addClass("tab2");
}
};
$("#tab-head li a").click(function(){
$("#tab-body div").hide();
$($(this).attr("href")).fadeIn();/*アニメーションで制御*/
$("#tab-head li a").removeClass("tab2");
$(this).addClass("tab2");
var index = $("#tab-head li a").index(this);
$.cookie(name,index,{expires:7});
return false;
})
});

/*CSSで制御する場合はこちら*/
$(document).ready(function(){
$("#tab-head li").addClass("tab1");
for(var i=0; i < $("#tab-body div").length; i++) {
var name = "cookie-tab";
if($.cookie(name)) {
if(($.cookie(name).indexOf(i)) != -1) {
$("#tab-body div").eq(i).show();
$("#tab-head li a").eq(i).addClass("tab2");
} else {
$("#tab-body div").eq(i).hide();
$("#tab-head li a").eq(i).removeClass("tab2");
}
}else{
$("#tab-body div").eq(0).show();
$("#tab-head li a").eq(0).addClass("tab2");
}
};
$("#tab-head li a").click(function(){
$("#tab-body div").hide();
$($(this).attr("href")).css('display','block');/*CSSで制御*/
$("#tab-head li a").removeClass("tab2");
$(this).addClass("tab2");
var index = $("#tab-head li a").index(this);
$.cookie(name,index,{expires:7});
return false;
})
});

関連リンク

 CSSだけでサイズ可変・スマホ対応のタブレイアウト

 サイズ可変・スマホ対応のタブレイアウト

 クッキーを使ったタブレイアウト

 JavaScriptでタブレイアウト

  • カテゴリー:Labs
  • facebook6
  • はてなブックマーク3
  • Google+5
  • Pocket0
  • Twitter0