Top >
JavaScript
> Accordion で特定のメニューをデフォルト表示する
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 このページの先頭に戻る
- FirefoxやChromeでブラウザのウインドウサイズを変更するブックマークレット
- フォームから別ウィンドウを開く方法のまとめ
- jQuery ベースのドロップダウンメニュー「Superfish」(縦メニュー)
- jQuery ベースのドロップダウンメニュー「Superfish」
- 「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 で文字をトリミングする(改善版)
この記事を読んだ人はこんな記事も読んでいます
- 図解! あなたもいままでの10倍速く本が読める
- Movable Type 4 のコミュニティ機能(その2:サインアップユーザーの権限自動付与とロールのカスタマイズ)
- Movable Type 4.1x から 4.2 へのアップグレード
- チャレンジ! Movable TypeをCMSとして使ってみよう!
- Movable Type 4.2 テンプレートセット(コミュニティブログ対応版)
- チャレンジ!Movable TypeをCMSとして使ってみよう!(第2回:MTタグの基本的な書き方・各テンプレートの説明)
- Movable Type(MT)テンプレート
- Movable Type 4 のコミュニティ機能(その1:プロフィール画面)
- Movable Type プラグイン一覧(MT4対応)
- はてなブックマークの被ブックマーク数 10000 突破
人気エントリー
Hatena Hot Entries
Hatena Entries
トラックバックURL
コメントする
greeting
