Movable Type 備忘録
Rico.jsを使ってサイドバーの折りたたみ
- Next Page: ブログの最終更新日付を表示する
- Prev Page: Ajaxでアンケート投票する
わたしのサイトのトップページで表示してる、『Commenters Top10』や『Popular Page Top10』の折りたたみについて訪問者さんから質問を頂いたので、メールで返答して済ませたのですが、他にも疑問を持つ人いるかなぁ・・・と思って記事にしてみました。
正直言うと、このカスタマイズってタイミングを逸してまして、RicoというJSを使用して実現してます。
今となってはたくさんのサイトで詳しく紹介されてるので、今さら感いっぱいなかんじがしてご紹介はやめてましたの。
Ricoはprototype.jsと併用して使います。
できる機能もたくさんありまして、Ricoのサイトでデモ・ページと、使い方などが説明されてます。
Ricoのデモページ
たくさんある機能の中で、わたしは主に以下の機能を使ってたりします。
- Rico.Corner
いわゆる角丸を実現してくれます。 - Rico.Accordion
任意のブロックをアコーディオンのように折りたたむことで、記事などを見やすくしてくれます。 - Rico.Effect
任意のブロックをフェードアウトさせたり、アニメーションしながらサイズ変更したりなどできる、エフェクト系です。
で、今回ご質問した内容は上記でいうところの、Rico.Effectという機能を応用したものです。 スライドさせながら、任意のブロックの長さを変更することで、表示/非表示させています。 ですので、わたしのサイトでは訳けあって使ってませんが、エントリの追記を表示するときに使用したりしてもいいかも、です。
使い方はカンタンで、まずRico.jsをRicoからダウンロードします。 prototype.jsをお持ちでないなら、ついでにダウンロードしておきます。
次に、以下のrico-toggleslider.jsをコピーしてファイルに保存します。
rico.js、prototype.jsおよび、rico-toggleslider.jsをサーバにアップロードします。 アップロード先はどこでも構いません。各自の環境に合わせてアップロードしてください。
最後にスライドさせたい部分のテンプレートを変更します。
ここでは、サイドバーの折りたたみを例にして説明します。
変更内容は以下の通りです。
<head>~</head>の間
<script type="text/javascript" src="<$MTBlogURL$>js/prototype.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/rico/rico.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/rico/rico-toggleslider.js"></script>
青い字の部分を各自の環境に合わせて変更します。
<div class="module-header">Commenters Top10
<a id="commenter-link" href="javascript:void(0);" onclick="return rico_toggle_slide('commenter-list', 'commenter-link', '▼', '▲');" class="toggle-slide-link">▼</a></div>
<div class="module-recent-comments module">
<ul id="commenter-list" class="rico-toggle-slide-close">
<MTSQL query="select DISTINCT comment_author, comment_url, COUNT( * ) FROM `mt_comment` WHERE comment_author != 'bzbell' GROUP BY comment_author ORDER BY `COUNT( * )` DESC LIMIT 0 , 10">
<li><a href="<$MTSQLColumn column='2'$>"><span><$MTSQLColumn column="3"$></span><$MTSQLColumn column="1"$></a></li>
</MTSQL>
</ul>
</div>
上記XHTMLは、わたしのサイトで実際に使っているコメンター一覧です。
青い字の部分がサイドバー折りたたみのリンクにあたります。
赤い字の部分が折りたたみ対象となるブロック名になります。
緑の字の部分はリンク名になります。
ピンクの字の部分は必ずrico-toggle-slide-closeまたは、rico-toggle-slide-openとすることで、初期表示時の状態を設定できます。
赤と緑の部分はそれぞれ対になっています。 名称を合わせる必要がありますのでご注意ください。
また、パラメータとしてOPEN/CLOSE時に表示するマークを指定します。
rico_toggle_slide('commenter-list', 'commenter-link', '▼', '▲');
青い字の部分がOPEN時に表示されるマークで、赤い字がCLOSE字のマークとなります。
以上で完了です。いつものように再構築して表示確認してください。
こんなかんじでサイドバーの折りたたみができるわけですが、このrico-toggleslider.jsには欠点があります。
それは、初期表示時は 'OPEN' または 'CLOSE' というように、どちらか一方しか指定ができないことです。
たとえば、あるサイドメニューの初期表示時は 'OPEN' で、他は 'CLOSE' というような使い方は現時点ではできません。
今後の課題で、気が向いたら対応したいと思います。
では、SEE YOU![]()
Trackback Pings(0)
No trackbacks found.
Comments(6)
- #3: Posted by かわぐち [RES]
私のブログへのコメント、ありがとうございます。
お気づきになったかもしれませんが、
このエントリーの内容を参考にさせてもらって、
「サイドバーの折りたたみ」を実装しました。たいへん貴重な情報、ありがとうございます。
これからも参考にさせてください。
よろしくお願いします。
- #4: Posted by bzbell [RES]
>>3 かわぐち さん
こんにちわ^^
> 私のブログへのコメント、ありがとうございます。
いつも見させてもらってるのですが、コメントするのは初めてでしたね ( ̄∇ ̄)!?
ムスメさんのイラスト気に入ってますの♪こちらこそよろしくお願い致します (m;_ _)mペコ
- #5: Posted by かわぐち [RES]
どうもです、かわぐちです。
>ムスメさんのイラスト気に入ってますの♪
ありがとうございます。
乗せろ、乗せろとうるさいもんで・・・。
親バカですね・・・。
- #6: Posted by bzbell [RES]
>>5 かわぐち さん
こんにちわ^^
> 親バカですね・・・。
そうかもしれませんね (; ̄∇ ̄A
でも、世間の父親なんてそんなもんだと思いますよ♪
わたしの父も、わたしが帰るといろいろ食べ物だしてくれたり、TDLのチケットくたりなど至りつくせりですの♪


とても参考になりました