jQeryでReadMoreを実装したく、プラグインや自作をしてみたのですが、理想に近いところまではいきつつ、どうしても完成におよばず、皆様のお知恵を拝借いただければ嬉しいです。
<実現したい動き>
-
テキストのある程度の所(4行程度)以降を「…(3点リーダー)」で省略し、その下に「続きを読む」を表示。
-
「続きを読む」をクリックすると「…」が消え、続きのテキストがアニメーションで表示される(slideDownの動き)。その下に「閉じる」が現れる。
-
「閉じる」をクリックすると、SlideUpの動きで「1.」の状態に戻る。
<自作jQuery>
http://codepen.io/i_ryo/pen/PqEqmM
CSSのline-clamp(…)と、jQueryのanimationメソッドを組み合わせて書き、理想に近い動きが再現できたのですが、ネックになっているのがテキストの高さの指定です。
テキストによってボリュームが変わるため、実数で「height: "200px"」などと入れると、高さが合いません。ボリュームによる高さの取得する方法がわかればと思っていますが、うまくいかない状態です。
<その他、試したプラグイン>
自作する前に試したプラグインです。もしこちらに近道があれば、それでも解決になって嬉しいです。
・READMORE.JS
http://jedfoster.com/Readmore.js/
もっともシンプルかつ理想的な動きなのですが、「…」が付けられず。
http://stackoverflow.com/questions/536814/insert-ellipsis-into-html-tag-if-content-too-wide
こちらの質問にも「…」が実装ができない、というような回答が見られました。
・Collapser
http://www.aakashweb.com/demos/jquery-collapser/
いくつか用意されているモードの内、「characters(文字数)」モードは「…」が付くのですが、閉じる時にアニメーションになりませんでした。
「lines(行数)」モードはアニメは理想的な動きでしたが、「READMORE.JS」同様に「…」が付けられませんでした。
・jTruncSubstr
http://semooh.jp/jglycy/jquery-plugins/jtruncsubstr
「…」が付き、かつアニメーションという理想的な形でしたが、唯一残念なのは「続きを読む」で表示されるテキスト(class="truncate_more")のCSSがdisplay:blockになり、そこから改行になってしまう部分です。
.truncate_moreがdisplay:inlineになるようカスタマイズを試みたのですが、うまくいかず。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/29 06:26
2015/06/29 08:36