Top >
JavaScript
> Accordion で特定のメニューをデフォルト表示する
News
2008年8月11日
エントリー本文
Accordion で特定のメニューをデフォルト表示する
先日紹介した「Accordion によるサイドメニューの折りたたみ」で、特定のメニューを最初から表示させておくためのカスタマイズです。
1.loadAccordions の修正(1ヶ所だけ表示)
「Accordion によるサイドメニューの折りたたみ」での loadAccordions の設定は次のようになっています。
function loadAccordions() {
var leftAccordion = new accordion('links-left');
var rightAccordion = new accordion('links-right');
}
例えば、左サイドバーの「最近のブログ記事」をデフォルトで表示したい場合、この関数に次の1行を追加します。
function loadAccordions() {
var leftAccordion = new accordion('links-left');
var rightAccordion = new accordion('links-right');
leftAccordion.activate($$('#links-left .accordion_toggle')[0]);
}
leftAccordion は左サイドバー用の変数、#links-left .accordion_toggle は、左サイドバーの id 属性と Accordion に登録しているメニュータイトルの class 属性値、[0] は Accordion に登録しているメニューの順番です(0から開始)。「最近のコメント」を開きたい場合は [1] にします。
右サイドバーの「タグクラウド」を表示させるには次のようにします。
function loadAccordions() {
var leftAccordion = new accordion('links-left');
var rightAccordion = new accordion('links-right');
rightAccordion.activate($$('#links-right .accordion_toggle')[1]);
}
2.loadAccordions の修正(2ヶ所表示)
左サイドバーと右サイドバーのメニューを同時に表示したい場合は次のように2行記述します。
function loadAccordions() {
var leftAccordion = new accordion('links-left');
var rightAccordion = new accordion('links-right');
leftAccordion.activate($$('#links-left .accordion_toggle')[0]);
rightAccordion.activate($$('#links-right .accordion_toggle')[1]);
}
なお、同じ変数(leftAccordion または rightAccordion)の中で2つ以上のメニューを同時にデフォルト表示することはできないようです。
3.表示メニューのスタイル
表示されているメニューのスタイルは、次のセレクタで制御できます。
.accordion_toggle_active {}
4.ページ別に表示するメニューを変更する
例として、Movable Type の場合であれば、ヘッダーに次のような制御を組み込めば、表示するメニューを変更することができます。
function loadAccordions() {
var leftAccordion = new accordion('links-left');
var rightAccordion = new accordion('links-right');
<mt:if name="category_archive">
leftAccordion.activate($$('#links-left .accordion_toggle')[0]);
</mt:if>
<mt:if name="entry_archive">
rightAccordion.activate($$('#links-right .accordion_toggle')[1]);
</mt:if>
}
name モディファイアの値は「予約変数一覧 for Movable Type 4.2」を参考にしてください。
この方法を用いれば、制御する変数によって色々な組み合わせが可能です。
Posted by yujiro
- 「JavaScript で文字をトリミングする(改善版)」バージョンアップ
- dtree のサブカテゴリーリストにブログ記事タイトルを表示する for Movable Type
- Parallax Backgrounds で背景画像のスクロール速度を変える
- prototype.js と pngfix.js の競合を解消する
- JavaScript の for 文のパフォーマンスを改善する
- Google マップの貼り付け用 HTML を valid にする
- Movable Type 4 の透過 PNG ロゴを IE6 以下のブラウザで透過する
- ツリー表示 JavaScript 「dTree」詳解
- dTree によるサブカテゴリーリスト for Movable Type
- HighSlide JS と prototype.js の競合を解消する
- HighSlide JS の onclick 属性を JavaScript で登録する
- Slider によるフォントサイズ変更でアクセシビリティを向上させる
- コメント投稿時にフォームボタンをグレーアウトする for Movable Type
- Slider の利用方法
- Highslide JS でサムネイル画像を拡大表示する
- JavaScript で文字をトリミングする(改善版)
- JavaScript で文字をトリミングする
- BlogPeople 等のリンクリストによる表示の遅延を解消する(その1:JavaScript編)
- ドラッグ&ドロップできるサイドメニューの折りたたみ(その2:ブログへの適用)
- ドラッグ&ドロップできるサイドメニューの折りたたみ(その1:基本設定)
人気エントリー
Hatena Hot Entries
Hatena Entries
トラックバックURL
コメントする
greeting

