これらのスタイルを使用して、やりたいことができるようです。
.more-text {
line-height: 1.2em;
display:none;
white-space: nowrap;
}
.more-text-collapse {
display:inline-block;
max-width:400px;
height:1.2em;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
.more-text-expand {
display:inline;
white-space: pre-wrap;
}
私はそれぞれに、それらを全幅に広げることを許可するが、それらがインターフェースを台無しにしないようにそれらを非表示にするクラス<divs>
だけを与え、次にそれらの幅を計算してクラスをオーバーライドします:more-text
$('.more-text').each(function(i,el) {
var width = $(this).width();
$(this).addClass('more-text-collapse');
if(width > 400) {
$('<a>', {href:'#',class:'more-link'}).text('[more]').insertAfter(this);
}
});
実際には、CSSから幅を完全に取り除くことができるので、1か所で定義するだけで済みます。
var maxWidth = 400;
$('.more-text').each(function(i,el) {
var width = $(this).width();
if(width > maxWidth) {
$(this).addClass('more-text-collapse').css('max-width',maxWidth);
$('<a>', {href:'#',class:'more-link'}).text('[more]').insertAfter(this);
} else {
$(this).addClass('more-text-expand');
}
});
拡大するテキストをアニメーション化できたらいいのにと思います...