|
INFORMATION TEMPLATE FOR FC2
APESKIN FOR BLOG
MAIL FORM BLOG PETの俳句集 MY BLOG LIST 後姿ラブリー同盟 |
|
|
|
BLOG PET CALENDER
CATEGORY ENTRIES
COMMENTS
TRACKBACKS
ARCHIVES RSSフィード LINKS SEARCH COPYRIGHT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2005.08.25 (Thu) 20:59
サイドメニューの折り畳み方法に関してご質問がありましたので、「chocolat-306」 を例にあげて説明させて頂きます。
このカスタマイズ方法は、JUGEMカスタマイズ講座 様の ナビゲーションの折り畳み を参考にさせて頂いたものです。 サイドメニューの折り畳みに関する機能は以下の通り。 ※ リスト部分を閉じたり開いたりできる
STEP1 : 各サイドメニューにID名をつける※ リストに含まれるアイテム数をカウントして表示する ※ 折り畳み用ボタンを開いた状態・閉じた状態で設定できる HTMLのソースを見ていただければ分かりますが、<!-- ▼ サイドメニュー部分 ここから --> 〜 <!-- ▲ サイドメニュー部分 ここまで --> 内にある、各サイドメニューのタイトル部分とコンテンツ部分にID名を付けます。 例 : 「カテゴリー一覧」 の設定方法 (ピンクの強調文字がID名を付け加えた部分) <!-- カテゴリー一覧 --> <div class="side_title" style="margin-top:0px;"> <img src="http://blog-imgs-1.fc2.com/c/h/o/chocolatblog/306-sidetitle.gif" width="10" height="12" border="0" align="middle"> CATEGORY <a href="#pagetop" title="このページのトップへ">▲</a></div> <div class="side_text"> <ul> <!--category--> <li><a href="<%category_link>" title="<%category_name>"><%category_name> (<%category_count>)</a></li> <!--/category--> </ul> </div><br><br> ↓ 上記の部分を、以下のように設定します (開閉マークをタイトル前につける場合) ↓ <!-- カテゴリー一覧 --> <div class="side_title" style="margin-top:0px;" id="categoryname"> CATEGORY <a href="#pagetop" title="このページのトップへ">▲</a></div> <div class="side_text" id="categorylist"> <ul> <!--category--> <li><a href="<%category_link>" title="<%category_name>"><%category_name> (<%category_count>)</a></li> <!--/category--> </ul> </div><br><br> ↓ 開閉マークを後ろにつける場合は、以下のようにします ↓ <!-- カテゴリー一覧 --> <div class="side_title" style="margin-top:0px;" id="categoryname"> <img src="http://blog-imgs-1.fc2.com/c/h/o/chocolatblog/306-sidetitle.gif" width="10" height="12" border="0" align="middle"> CATEGORY</div> <div class="side_text" id="categorylist"> <ul> <!--category--> <li><a href="<%category_link>" title="<%category_name>"><%category_name> (<%category_count>)</a></li> <!--/category--> </ul> </div><br><br> 青文字の class="side_title" となっている部分がリストタイトルにあたる部分となり、class="side_text" となっている部分がリスト本体になります。 リストタイトルの <div> タグ内には id="〜name"、リスト本体の部分の <div> タグ内には id="〜list" という風に設定します。 ▽ ページエントリーリスト タイトル : id="entryname" 本体 : id="entrylist" ▽ 最新エントリーリスト タイトル : id="newentryname" 本体 : id="newentrylist" ▽ 最新コメントリスト タイトル : id="commentname" 本体 : id="commentlist" ▽ 最新トラックバックリスト タイトル : id="tbname" 本体 : id="tblist" ▽ リンクリスト タイトル : id="linkname" 本体 : id="linklist" ▽ カテゴリーリスト タイトル : id="categoryname 本体 : id="categorylist ▽ アーカイブリスト タイトル : id="archivename" 本体 : id="archivelist" ▽ プロフィールリスト タイトル : id="profilename" 本体 : id="profilelist" STEP2 : HTMLテンプレートにJavaScriptを挿入 HTMLテンプレートの最後(</body> の直前)に、以下のJavaScriptタグを挿入します。 この時の注意点としては、ツリー化やプルダウンメニュー化を行っている場合には、それらのスクリプトの前に置くということです。 <script type="text/javascript"> <!-- function InitFoldNavi() { FoldNavigation('newentry','off',false); // 最新エントリ FoldNavigation('entry' ,'on' ,true); // ページエントリ FoldNavigation('category','on',false); // カテゴリー FoldNavigation('comment' ,'on' ,false); // 最新コメント FoldNavigation('tb' ,'on' ,false); // 最新トラックバック FoldNavigation('archive' ,'off',true); // アーカイブ FoldNavigation('link' ,'on' ,true); // リンク FoldNavigation('profile' ,'off',false); // プロフィール } function FoldNavigation(idName,initMode,viewNum) { var openMark = '▽'; /* 閉じている場合に開くためのマーク */ var closeMark = '△'; /* 開いている場合に閉じるためのマーク */ var preMark = true; /* マークの挿入位置。タイトルの前なら true、タイトルの後ろなら false */ var idTitle = Array(idName,'name').join(''); var idList = Array(idName,'list').join(''); var objTitle = this.document.getElementById(idTitle); var objLists = this.document.getElementById(idList); if (!objTitle || !objLists) return; var dispMode = objLists.style.display; if (!dispMode) { var tmpText = Array('FoldNavigation(',"'",idName,"','chng','');return(false);").join(''); var insMark = new Array(); var insText = new Array(); insMark[insMark.length] = Array('<a class="foldmark" href="#" onclick="',tmpText,'" onkeypress="',tmpText,'">').join(''); insMark[insMark.length] = (initMode == 'off') ? openMark : closeMark; insMark[insMark.length] = '</a>'; if (preMark) insText[insText.length] = insMark.join(''); insText[insText.length] = objTitle.innerHTML; if (viewNum) { var objItems = objLists.getElementsByTagName('li'); insText[insText.length] = Array(' <span>(',objItems.length,')</span>').join(''); } if (!preMark) insText[insText.length] = insMark.join(''); objLists.style.display = (initMode == 'off') ? 'none' : 'block'; objTitle.innerHTML = insText.join(''); } else if (initMode == 'chng') { var objMarks = objTitle.getElementsByTagName('a'); for (i=0;i<objMarks.length;i++) { if (objMarks[i].className == 'foldmark') { objMarks[i].firstChild.nodeValue = (dispMode == 'none') ? closeMark : openMark; } } objLists.style.display = (dispMode == 'none') ? 'block' : 'none'; } } InitFoldNavi(); // ナビゲーションの折り畳み // --> </script> 上記スクリプトの最初の方にある function InitFoldNavi() { FoldNavigation('newentry','off',false); // 最新エントリ FoldNavigation('entry' ,'on' ,true); // ページエントリ FoldNavigation('category','on',false); // カテゴリー FoldNavigation('comment' ,'on' ,false); // 最新コメント FoldNavigation('tb' ,'on' ,false); // 最新トラックバック FoldNavigation('archive' ,'off',true); // アーカイブ FoldNavigation('link' ,'on' ,true); // リンク FoldNavigation('profile' ,'off',false); // プロフィール } という部分が、各リストの初期表示状態を設定する部分です。 FoldNavigation('newentry','off',false); // 最新エントリ は、最新エントリの初期表示状態を表していますが、 FoldNavigation('リスト名','初期表示',アイテム数表示); というような設定内容になっています。 「リスト名」 は、各リスト名を設定する部分で、「id="〜name"」 や 「id="〜list"」 の 「〜」 にあたる部分のことです。 「初期表示」 は、デフォルト時の開閉状態を設定する部分で、「on」 にすると開いた状態、「off」 にすると閉じた状態が初期表示になります。 「アイテム数表示」は、リストタイトルの横にリスト数を表示するかどうかを設定する部分で、「true」 にするとリスト数を表示し、「false」 にするとリスト数は表示されません。 つまり、上記の最新エントリを例にすると、最初は閉じた状態で表示され、リスト数は表示されないということになります。 STEP3 : 開閉マークの設定 開閉マークの設定は、スクリプト内の以下の部分で行います。 var openMark = '▽'; /* 閉じている場合に開くためのマーク */ var closeMark = '△'; /* 開いている場合に閉じるためのマーク */ var preMark = false; /* マークの挿入位置。タイトルの前なら true、タイトルの後ろなら false */ タイトルの前に [開] [閉] というマークをつける場合は var openMark = '[開]'; /* 閉じている場合に開くためのマーク */ var closeMark = '[閉]'; /* 開いている場合に閉じるためのマーク */ var preMark = true; /* マークの挿入位置。タイトルの前なら true、タイトルの後ろなら false */ のように、ピンクの強調文字部分を変更してあげます。 STEP4 : 開閉マークのスタイル設定 開閉マークは <a class="foldmark"> というタグで囲まれており、リスト数は <span>タグで囲まれています。 なので、CSSで設定する場合は、以下のような設定タグを追加します。 .side_title span { /* リスト数の設定 */ color:gray; } .side_title a.foldmark{ /* 開閉マークの設定 */ text-decoration:none; } これは、JUGEMカスタマイズ講座 様で解説されている方法ですが、FC2でもこれのカスタマイズ方法でサイドメニューの折り畳みが可能です。 ブログパーツも折り畳み式にする場合は、<div>タグ内に各リスト名を追加し、スクリプト内にも初期表示状態を設定すればOKです。 折りたたみの方法をあちこちで読んできましたが、
なかなかうまく行きませんでしたが、 こりらに伺ってやっと設置完了しました。 blogpeopleでリンク追加させていただいています。 有難うございました。
引き続きメニウの折り畳みに挑戦してみまいた。参考にしたのはこちら↓。chocolat* BLOGhttp://chocolatblog.blog8.fc2.com/blog-category-12.htmlしかし何故かこのままコピペすると STEP2 : HTMLテ
by かえいかえ。 [▲]
// BLOT TOP //
Copyright © 2005 chocolat* All rights reserved.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||