readmoreプラグイン
readmoreプラグインは、一定文字数を超えた文章は折りたたみ、続きを読むリンクを表示させることのできるプラグインです。このプラグインを使うことで、ブログの見出し一覧のようなサイトを作ることができます。
下記サイトからjtsnake-jquery-plugins-7d6728e20daa.zipをダウンロードし、解凍後のreadmoreフォルダにあるjquery.readmore.jsをpluginsフォルダに配置します。
今回は、デフォルトで使用した場合と、表示させる文字数を指定する場合、リンクの表示文字を指定する場合の3種類について説明します。
リスト1にreadmoreプラグインの使用例を示します。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>jQuery readmoreサンプル</title>
<!--1.jQueryの読み込み-->
<script type="text/javascript" src="Scripts/jquery-1.5.2.min.js"></script>
<!--2.プラグインの読み込み-->
<script type="text/javascript" src="plugins/jquery.readmore.js"></script>
<!--3.CSSの設定-->
<style type="text/css">
body {
font-family: helvetica, arial;
margin: 0px;
padding: 0px;
font-size: 1.3em;
}
.container {
margin: 0 auto;
width: 800px;
border-left: 15px solid #AA4488;
padding-left: 25px;
}
.more {
font-weight: bold;
color: #BB4488;
cursor: pointer;
}
h2 {
margin-top: 60px;
}
</style>
<!--4.プラグインの設定-->
<script type="text/javascript">
$(function () {
//(1)Defaultの使い方
$("#def .short").readmore();
//(2)表示文字数を指定する
$("#len .short").readmore({ substr_len: 50 });
//(3)ReadMoreの表示を変更する
$("#link .short").readmore({ more_link: '<a class="more something">続きはこちら</a>' });
});
</script>
</head>
<body>
<div class="container">
<h1>Jquery.readmore サンプル</h1>
<h2>(1)Defaultの使い方</h2>
<div id="def">
<h3>プラグイン適用前</h3>
<p class="before">
012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで100文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで200文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで300文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで400文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで500文字→)ここからデフォルト(500文字)以降で折りたたまれる部分 ~(中略)~
</p>
<h3>プラグイン適用後</h3>
<p class="short">
012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで100文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで200文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで300文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで400文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで500文字→)ここからデフォルト(500文字)以降で折りたたまれる部分 ~(中略)~
</p>
</div>
<h2>(2)表示文字数を指定する</h2>
<div id="len">
<h3>プラグイン適用前</h3>
<p class="before">
01234567890123456789012345678901234567(ここまでで50文字→)ここから折り返される部分0123456789012345678901234567890123456789 ~(中略)~
</p>
<h3>プラグイン適用後</h3>
<p class="short">
01234567890123456789012345678901234567(ここまでで50文字→)ここから折り返される部分0123456789012345678901234567890123456789 ~(中略)~
</p>
</div>
<h2>(3)ReadMoreの表示を変更する</h2>
<div id="link">
<h3>プラグイン適用前</h3>
<p class="before">
012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで100文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで200文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで300文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで400文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで500文字→)ここからデフォルト(500文字)以降で折りたたまれる部分 ~(中略)~
</p>
<h3>プラグイン適用後</h3>
<p class="short">
012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで100文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで200文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで300文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで400文字→)012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456(ここまで500文字→)ここからデフォルト(500文字)以降で折りたたまれる部分 ~(中略)~
</p>
</div>
</div>
</body>
</html>
今回は、表示領域を「3.CSSの設定」のようにbody、container、more、h2について指定しました。こちらは、必要に応じて書き換えてください。
プラグインの使い方は、「4.プラグインの設定」のように、表示領域のid属性、classを指定し、readmoreメソッドを用います。引数に何も指定しない場合は、デフォルトで50文字以降が折りたたまれ、ReadMoreというリンクが表示されます。プラグイン適用前を図1に、プラグイン適用後を図2に示します。


ReadMoreリンクをクリックすると、図3のように残りの文字が表示されます。

また、表示される文字数を指定するには、「4.プラグインの設定」の「(2)表示文字数を指定する」のように、引数にsubstr_lenで、文字数を指定します。実行結果を図4に示します。

最後に「ReadMore」リンクの表示文字を指定するには、「4.プラグインの設定」の「(3)ReadMoreの表示を変更する」のように、引数にmore_link、クラスに「more something」と表示テキストを指定します。実行結果を図5に示します。
また、「(3)ReadMoreの表示を変更する」はリスト2のようにも書き換えられます。
$.fn.readmore.defaults.more_link = '<a class="more something">続きはこちら</a>';
$(".short").readmore();

