<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TokyoHeadTerminal &#187; JavaScript</title>
	<atom:link href="http://www.head-t.com/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://www.head-t.com</link>
	<description></description>
	<lastBuildDate>Thu, 09 Feb 2012 06:44:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>jQuery lightbox plugin</title>
		<link>http://www.head-t.com/2008/12/2008-12-18-01.html</link>
		<comments>http://www.head-t.com/2008/12/2008-12-18-01.html#comments</comments>
		<pubDate>Thu, 18 Dec 2008 09:51:21 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=136</guid>
		<description><![CDATA[Web制作の際、使いどころを間違わなければバッチリとキマるLightboxですが、prototype.js ベースなので jQueryと併用する場合にはコンフリクト回避を行う必要がありました。 jQuery で ligh [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7573" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-18_01.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-18_01-350x132.jpg" alt="jQuery lightbox plugin" title="jQuery lightbox plugin" width="350" height="132" class="size-medium wp-image-7573" /></a><p class="wp-caption-text">jQuery lightbox plugin</p></div>
<p>Web制作の際、使いどころを間違わなければバッチリとキマる<a href="http://www.huddletogether.com/projects/lightbox2/" target="_blank" class="broken_link">Lightbox</a>ですが、prototype.js ベースなので jQueryと併用する場合には<a href="http://www.head-t.com/2008/12/2008-12-06-02.html" target="_blank">コンフリクト回避</a>を行う必要がありました。</p>
<p>jQuery で lightbox を使用する plugin、その名も<a href="http://leandrovieira.com/projects/jquery/lightbox/" target="_blank">jQuery lightbox plugin</a> です。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;js/jquery.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;js/jquery.lightbox.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;js/jquery.lightbox-setting.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>link rel<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;stylesheet&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/css&quot;</span> href<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;css/jquery.lightbox.css&quot;</span> media<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;screen&quot;</span> <span style="color: #339933;">/&gt;</span></pre></td></tr></table></div>

</p>
<p>などで、必要な Javascript と CSS を読み込みます。<br />
また、下記のような指定ができます。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
$<span style="color: #009900;">&#40;</span>’a<span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>rel<span style="color: #339933;">*=</span>lightbox<span style="color: #009900;">&#93;</span>‘<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">lightBox</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// rel属性でlightboxと指定しているaタグにlightboxを指定する。</span>
$<span style="color: #009900;">&#40;</span>’#gallery a’<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">lightBox</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// 特定のIDの中のaタグにlightboxを指定する。</span>
$<span style="color: #009900;">&#40;</span>’a.<span style="color: #660066;">lightbox</span>’<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">lightBox</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// lightboxというclassをつけたlightboxを指定する。</span>
$<span style="color: #009900;">&#40;</span>’a<span style="color: #3366CC;">').lightBox(); //aタグすべてにlightboxを指定する。
});
&lt;/script&gt;</span></pre></td></tr></table></div>

</p>
<h3>jquery.lightbox-setting.js</h3>
<p>html 上に色々と書いてしまうのもアレなので、上記の設定をを行うために勝手に作った js ファイルです。下記のような指定をしておきます。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
$<span style="color: #009900;">&#40;</span>’a<span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>rel<span style="color: #339933;">*=</span>lightbox<span style="color: #009900;">&#93;</span>‘<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">lightBox</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>　<span style="color: #006600; font-style: italic;">//rel属性でlightboxと指定しているaタグにlightboxを指定する。</span>
overlayBgColor<span style="color: #339933;">:</span> ‘#000′<span style="color: #339933;">,</span>　<span style="color: #006600; font-style: italic;">//背景の色を指定できます。</span>
overlayOpacity<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.6</span><span style="color: #339933;">,</span>　<span style="color: #006600; font-style: italic;">//背景の透明度を指定できます。デフォルトは0.8。</span>
imageLoading<span style="color: #339933;">:</span> ‘http<span style="color: #339933;">:</span><span style="color: #006600; font-style: italic;">//www.head-t.com/common/lightbox/loading.gif’,　//ローディングの画像を指定できます。</span>
imageBtnClose<span style="color: #339933;">:</span> ‘http<span style="color: #339933;">:</span><span style="color: #006600; font-style: italic;">//www.head-t.com/common/lightbox/close.gif’,　//閉じるのボタンの画像を指定できます。</span>
imageBtnPrev<span style="color: #339933;">:</span> ‘http<span style="color: #339933;">:</span><span style="color: #006600; font-style: italic;">//www.head-t.com/common/lightbox/prev.gif’,　// 戻るのボタンの画像を指定できます。</span>
imageBtnNext<span style="color: #339933;">:</span> ‘http<span style="color: #339933;">:</span><span style="color: #006600; font-style: italic;">//www.head-t.com/common/lightbox/next.gif’,　//次へのボタンの画像を指定できます。</span>
containerBorderSize<span style="color: #339933;">:</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">,</span>　<span style="color: #006600; font-style: italic;">//写真の枠のパディングの指定ができます。デフォルトは10。</span>
containerResizeSpeed<span style="color: #339933;">:</span> <span style="color: #CC0000;">350</span><span style="color: #339933;">,</span>　<span style="color: #006600; font-style: italic;">//コンテナーのデュレイション(モーションの速度)を指定できます。デフォルトは400。</span>
txtImage<span style="color: #339933;">:</span> ‘No.’<span style="color: #339933;">,</span>　<span style="color: #006600; font-style: italic;">//画像のキャプションを指定できます。</span>
txtOf<span style="color: #339933;">:</span> ‘<span style="color: #339933;">/</span>’　<span style="color: #006600; font-style: italic;">//画像のキャプションで &quot;of&quot; を利用できます。</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

</p>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://leandrovieira.com/projects/jquery/lightbox/" target="_blank">jQuery lightBox plugin</a></li>
<li class="link"><span class="icon">&raquo;</span><a href="http://www.u-ziq.com/blog/2007/10/jquerylightboxplugin.html" target="_blank">jQueryでlightBoxを使うplugin : ユージック</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/12/2008-12-18-01.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【XHTML＋CSS】08_JavaScriptライブラリとCSS</title>
		<link>http://www.head-t.com/2008/12/2008-12-06-02.html</link>
		<comments>http://www.head-t.com/2008/12/2008-12-06-02.html#comments</comments>
		<pubDate>Fri, 05 Dec 2008 18:09:18 +0000</pubDate>
		<dc:creator>大森</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[XHTML+CSS]]></category>

		<guid isPermaLink="false">http://tyoht.kir.jp/wp/?p=120</guid>
		<description><![CDATA[CSS Nite ビギナーズの連動書籍「現場のプロから学ぶXHTML+CSS）」を元に、自分自身が理解しやすいような形で要約メモしておきたいと思います。 代表的なJavaScriptライブラリ prototype.js（ [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_7614" class="wp-caption alignnone" style="width: 360px"><a class="fancy" href="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-06_02.jpg"><img src="http://www.head-t.com/wp-content/uploads/2008/12/2008-12-06_02-350x132.jpg" alt="【XHTML＋CSS】08_JavaScriptライブラリとCSS" title="【XHTML＋CSS】08_JavaScriptライブラリとCSS" width="350" height="132" class="size-medium wp-image-7614" /></a><p class="wp-caption-text">【XHTML＋CSS】08_JavaScriptライブラリとCSS</p></div>
<p><a href="http://cssnite.jp/beginners/" target="_blank">CSS Nite ビギナーズ</a>の連動書籍「<a href="http://cssnite.jp/beginners/book/" target="_blank">現場のプロから学ぶXHTML+CSS）</a>」を元に、自分自身が理解しやすいような形で要約メモしておきたいと思います。</p>
<h3>代表的なJavaScriptライブラリ</h3>
<ul>
<li><a href="http://www.prototypejs.org/" target="_blank">prototype.js</a>（プロトタイプ・ジェイエス）</li>
<li><a href="http://script.aculo.us/" target="_blank">script.aculo.us</a>（スクリプタキュラス）</li>
<li><a href="http://jquery.com/" target="_blank">jQuery</a>（ジェイ・クエリー）</li>
<li><a href="http://developer.yahoo.com/yui/" target="_blank">Yahoo! User Interface library</a></li>
<li><a href="http://labs.adobe.com/technologies/spry/" target="_blank">Adobe Spry Framework for Ajax</a></li>
</ul>
<h3>複数のJavaScriptライブラリを同時に利用する際の注意点</h3>
<h4>jQueryとprototype.js</h4>
<p>両方とも<strong>$</strong>というオブジェクトを利用しており、あとから読み込んだライブラリがオブジェクトを上書きしてしまうので、同時に利用できない。 同時に利用する場合はJQueryにコンフリクト回避を行う。prototype.jsを読み込んだあとにjQueryを読み込み、その直後にコンフリクト回避の命令を記述する。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">&lt;script type=&quot;text/javascript&quot; src=&quot;js/prototype.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.js&quot;&gt;&lt;/script&gt;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>jQuery.<span style="color: #660066;">noConflict</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//コンフリクト回避の命令 &lt;/script&gt;</span></pre></td></tr></table></div>

</p>
<p>これにより、jQueryの<strong>$</strong>が<strong>jQuery</strong>に書き換えられるので、コンフリクト回避後は<strong>$(&#8220;tr:even&#8221;)</strong>ではなく<strong>jQuery(&#8220;tr:even&#8221;)</strong>と記述する。</p>
<h3>onload記法の変更</h3>
<p>あとから設定されているonloadイベントしか実行されないので、</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #000066;">onload</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 　load時に実行される命令 <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</p>
<p>この指定を次のように書き換えることで、Javascriptライブラリのonloadイベントをバッティングせずに利用できる。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">addEvent<span style="color: #009900;">&#40;</span>window<span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;load&quot;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>load時に実行される命令<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
<span style="color: #003366; font-weight: bold;">var</span> addEvent<span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>elm<span style="color: #339933;">,</span>listener<span style="color: #339933;">,</span>fn<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
elm.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#40;</span>listener<span style="color: #339933;">,</span>fn<span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
elm.<span style="color: #660066;">attachEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;on&quot;</span><span style="color: #339933;">+</span>listener<span style="color: #339933;">,</span>fn<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</p>
<h3>yuga.js</h3>
<p>ロールオーバーやスムーズスクロールなど、さまざまな機能が統合されたライブラリ。</p>
<h4>01. ファイルセットのダウンロードと解凍</h4>
<p><span class="icon">&raquo;</span><a href="http://kyosuke.jp/portfolio/javascript/yuga.html" class="broken_link">配布元からダウンロード</a></p>
<h4>02. yuga.jsに必要なCSSとJavascriptの読み込み</h4>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>link rel<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;stylesheet&quot;</span> href<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;css/thickbox.css&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/css&quot;</span> media<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;screen&quot;</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;js/jquery.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;js/thickbox.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;js/yuga.js&quot;</span> charset<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;utf-8&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

</p>
<h4>03. img要素のclass属性に「btn」を追加</h4>
<p>ロールオーバーを適用したいimg要素にclass属性で<strong>btn</strong>という値を追加する。ロールオーバー後の画像は、ファイルの末尾に「<strong>_on</strong>」を付けておくという決まりがある。</p>
<h3>jQueryの基本的な使い方</h3>
<p>jQuery1.2.6.min.jsの<strong>min</strong>は、ファイルの圧縮形式Minifiedをあらわしたもので、変数名を短くしたり、コメントや空白、改行を削除してファイルサイズを大幅に減少したもの。</p>
<h3>jQueryでストライプテーブルを実現</h3>
<p><strong>stripe_table.js</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 　$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr:nth-child)odd)&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;background-color&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;#cccccc&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

</p>
<p><strong>奇数と偶数</strong> oddは奇数、evenは偶数。テーブルの1行目はcaption要素としてカウントするため、テーブル一番上は偶数行目になる。</p>
<p><strong>nth-child</strong> 10番目は10thのようにthをつけて表現し、nは数を表すので、<strong>nth-child()</strong>で<strong>()内の順番の子要素</strong>といった意味合いになる。</p>
<h3>jQueryでタブパネルを実現</h3>
<p><strong>tab_panel.html</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;container&quot;</span><span style="color: #339933;">&gt;</span>
　<span style="color: #339933;">&lt;</span>ul <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;tab&quot;</span><span style="color: #339933;">&gt;</span>
　　<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>タブ<span style="color: #CC0000;">1</span><span style="color: #339933;">&lt;/</span>li<span style="color: #339933;">&gt;</span>
　　<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>タブ<span style="color: #CC0000;">2</span><span style="color: #339933;">&lt;/</span>li<span style="color: #339933;">&gt;</span>
　　<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>タブ<span style="color: #CC0000;">3</span><span style="color: #339933;">&lt;/</span>li<span style="color: #339933;">&gt;</span>
　<span style="color: #339933;">&lt;/</span>ul<span style="color: #339933;">&gt;</span>
　<span style="color: #339933;">&lt;</span>ul <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;panel&quot;</span><span style="color: #339933;">&gt;</span>
　　<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>タブ<span style="color: #CC0000;">1</span>の内容<span style="color: #339933;">&lt;/</span>li<span style="color: #339933;">&gt;</span>
　　<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>タブ<span style="color: #CC0000;">2</span>の内容<span style="color: #339933;">&lt;/</span>li<span style="color: #339933;">&gt;</span>
　　<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>タブ<span style="color: #CC0000;">3</span>の内容<span style="color: #339933;">&lt;/</span>li<span style="color: #339933;">&gt;</span>
　<span style="color: #339933;">&lt;/</span>ul<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

</p>
<p><strong>tab_panel.css</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">*</span> <span style="color: #009900;">&#123;</span>
	margin<span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
	padding<span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
	list<span style="color: #339933;">-</span>style<span style="color: #339933;">-</span>type<span style="color: #339933;">:</span> none<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
div#container <span style="color: #009900;">&#123;</span>
	margin<span style="color: #339933;">:</span> 10px auto<span style="color: #339933;">;</span>
	width<span style="color: #339933;">:</span> 500px<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
ul.<span style="color: #660066;">tab</span> li <span style="color: #009900;">&#123;</span>
	float<span style="color: #339933;">:</span> left<span style="color: #339933;">;</span>
	padding<span style="color: #339933;">:</span> 4px 10px<span style="color: #339933;">;</span>
	cursor<span style="color: #339933;">:</span> pointer<span style="color: #339933;">;</span>
	background<span style="color: #339933;">:</span> #ddd<span style="color: #339933;">;</span>
	border<span style="color: #339933;">:</span> 1px solid #<span style="color: #CC0000;">999</span><span style="color: #339933;">;</span>
	margin<span style="color: #339933;">-</span>right<span style="color: #339933;">:</span> 1px<span style="color: #339933;">;</span>
	position<span style="color: #339933;">:</span> relative<span style="color: #339933;">;</span>
	top<span style="color: #339933;">:</span> 1px<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
ul.<span style="color: #660066;">tab</span> li.<span style="color: #660066;">selected</span> <span style="color: #009900;">&#123;</span>
	border<span style="color: #339933;">-</span>bottom<span style="color: #339933;">:</span> 1px solid #eee<span style="color: #339933;">;</span>
	background<span style="color: #339933;">:</span> #eee<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
ul.<span style="color: #660066;">panel</span> li <span style="color: #009900;">&#123;</span>
	clear<span style="color: #339933;">:</span> both<span style="color: #339933;">;</span>
	background<span style="color: #339933;">:</span> #eee<span style="color: #339933;">;</span>
	border<span style="color: #339933;">:</span> 1px solid #<span style="color: #CC0000;">999</span><span style="color: #339933;">;</span>
	padding<span style="color: #339933;">:</span> 10px<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</p>
<p>ひとつ目のul要素をタブとするためにclass属性で<strong>tab</strong>という値を、ふたつ目のul要素をパネルとするためにclass属性で<strong>panel</strong>という値で指定する。</p>
<p><strong>tab_panel.js</strong></p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li:first-child&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.panel li:not(:first)&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.panel li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.panel li:eq(&quot;</span><span style="color: #339933;">+</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;block&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 　<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p>以下、ソースコードの解説</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li:first-child&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p><strong>addClass</strong>は、指定した要素にclass属性を追加する命令。CSSセレクタは、class属性に<strong>tab</strong>の値を持つ要素のなかの最初のli要素、つまりひとつ目のタブに<strong>selected</strong>というclass属性を追加するという意味。<strong>selected</strong>は、tab_panel.cssでタブの選択状態をあらわすクラスとしてスタイルを適用している。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.panel li:not(:first)&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p><strong>css</strong>は、指定した要素のcssプロパティを変更する命令。CSSセレクタは、class属性に<strong>panel</strong>の値を持つ要素のなかの最初のli要素以外、つまりひとつ目のパネル以外のdisplayプロパティをnone（非表示）にしている。</p>
<p>ここまでの<strong>addClass</strong>と<strong>css</strong>の命令で、タブパネルの初期状態を設定している。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>クリックされた時の命令<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p>clickは、指定した要素がクリックされたときの命令。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p><strong>removeClass</strong>は、指定した要素からclass属性を削除する命令。クリックされたときにすべてのタブからselectedを削除し、未選択状態に変更している。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p>クリックされたときの命令を記述する際、<strong>$()</strong>の中にCSSセレクタではなく<strong>this</strong>と指定した場合、クリックされた要素それ自体を意味する。クリックされた要素のclass属性に<strong>selected</strong>という値を追加する意味になる。</p>
<p>以上で、タブをクリックしたときに、クリックされた要素を選択状態に変更することができる。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.panel li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p>すべてのパネルを非表示にする指定</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

</p>
<p>indexは、指定された要素の中での番号を取得する命令。ここではタブの中でクリックされた要素の番号を取得している。</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.panel li:eq(&quot;</span><span style="color: #339933;">+</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;block&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p><strong>eq</strong>フィルタを利用して、クリックされたタブと同じ番号のパネルを表示する。</p>
<h3 class="link">外部リンク</h3>
<ul class="link">
<li class="link"><span class="icon">&raquo;</span><a href="http://cssnite.jp/archives/post_1205.html" target="_blank">CSS Nite in Ginza, Vol.28フォローアップ | CSS Nite公式サイト</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.head-t.com/2008/12/2008-12-06-02.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.head-t.com/tag/javascript/feed ) in 0.57751 seconds, on Feb 10th, 2012 at 10:32 am JST. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 10th, 2012 at 11:32 am JST -->
