INFORMATION
しょぼい(泣)FC2用テンプレを配布。
趣味&日々のことを書き綴ったブログ。
HTML・テンプレ・SKINも配布中。
お気に入りに追加する
リンクについて  WEB拍手
TEMPLATE FOR FC2
共有テンプレート使用上のご注意
chocolat-308 chocolat-308
3カラムタイプ
プラグイン対応
chocolat-307 chocolat-307
3カラムタイプ
プラグイン対応
chocolat-306 chocolat-306
2カラムタイプ
プラグイン未対応
chocolat-305 chocolat-305
2カラムタイプ
プラグイン未対応
サイド折り畳み式
chocolat-304 chocolat-304
3カラムタイプ
プラグイン未対応
APESKIN FOR BLOG
ブログ用スキン使用上のご注意
BLOG01 BLOG #01
ゲスブタイプ
レス機能なし
文字色選択可
MAIL FORM
NAME :

MAIL :

SUBJECT :

MESSAGE :
BLOG PETの俳句集
MY BLOG LIST
後姿ラブリー同盟

chocolat* BLOG

chocolat* MAIN SITE  人気ブログランキング
BLOG PET
ふじこ // みちる
お友達大募集中!
CALENDER
07 // 2008.08 // 09
S M T W T F S
- - - - - 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 30
31 - - - - - -
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です。
はじめまして [11.15]
折りたたみの方法をあちこちで読んできましたが、
なかなかうまく行きませんでしたが、
こりらに伺ってやっと設置完了しました。
blogpeopleでリンク追加させていただいています。
有難うございました。
URL // スマイル #5UYpC0RE [EDIT] []



「管理者にだけ表示を許可する」 にした場合、お返事が大幅に遅れる可能性がございます。
なるべく 「管理者にだけ表示を許可する」 をOFFにしてくださいますよう、お願い致します。
管理者にだけ表示を許可
関連性が低いと当方で判断したものは、予告なく削除する場合がございます。
http://chocolatblog.blog8.fc2.com/tb.php/14-dbdb8112
引き続きメニウの折り畳みに挑戦してみまいた。参考にしたのはこちら↓。chocolat* BLOGhttp://chocolatblog.blog8.fc2.com/blog-category-12.htmlしかし何故かこのままコピペすると STEP2 : HTMLテ
by かえいかえ。 []
// BLOT TOP // 
Copyright © 2005 chocolat* All rights reserved.