限制最大高度的文本
Limiting text with max height
我有一个网格布局,我想通过剪切文本而不是添加更多来限制文本的高度...link。我使用长度来获取必须剪切文本的位置。但是当 post 包含短行并用 enter 分隔时,它们算作短文本,但它们的高度仍然很高。
像这样:
---------- ----------
|12345678| |12 |
|9more...| |34 |
| | |56 |
---------- |78 |
|9more...|
----------
那么有什么办法可以限制高度吗?
Ps。对不起我的英语。
创建一个读取每个 post 的函数,如果高度超过 Xpx,您将添加 'more...' 锚点并限制高度。
示例:
$('post').each(function(){
if($(this).height > 50){
$(this).css('max-height', '50px');
$(this).append('<a class="more">more....</a>');
}
});
然后你创建另一个监听 class more
的函数,如果点击完成,你将退出 max-height
属性 和更多锚点。
这是一个很好的解决方案,可以从内容中删除单个字符,直到它的高度达到指定值:
var maxHeight = 70;
var limiter = document.getElementById("limiter");
var height = limiter.clientHeight;
var content = limiter.innerText;
alert("Original Content:\n" + content);
var count = 0;
while (height > maxHeight && count < 100) {
count++;
content = content.substring(0, content.length - 1);
limiter.innerText = content + " more...";
height = limiter.clientHeight;
}
alert("Adjusted Content:\n" + content);
var html = limiter.innerHTML;
alert("Final HTML:\n" + html);
count
是为了防止陷入无限循环,以防万一。没有必要。
Fiddle: http://jsfiddle.net/38p8hhve/
我有一个网格布局,我想通过剪切文本而不是添加更多来限制文本的高度...link。我使用长度来获取必须剪切文本的位置。但是当 post 包含短行并用 enter 分隔时,它们算作短文本,但它们的高度仍然很高。 像这样:
---------- ----------
|12345678| |12 |
|9more...| |34 |
| | |56 |
---------- |78 |
|9more...|
----------
那么有什么办法可以限制高度吗?
Ps。对不起我的英语。
创建一个读取每个 post 的函数,如果高度超过 Xpx,您将添加 'more...' 锚点并限制高度。
示例:
$('post').each(function(){
if($(this).height > 50){
$(this).css('max-height', '50px');
$(this).append('<a class="more">more....</a>');
}
});
然后你创建另一个监听 class more
的函数,如果点击完成,你将退出 max-height
属性 和更多锚点。
这是一个很好的解决方案,可以从内容中删除单个字符,直到它的高度达到指定值:
var maxHeight = 70;
var limiter = document.getElementById("limiter");
var height = limiter.clientHeight;
var content = limiter.innerText;
alert("Original Content:\n" + content);
var count = 0;
while (height > maxHeight && count < 100) {
count++;
content = content.substring(0, content.length - 1);
limiter.innerText = content + " more...";
height = limiter.clientHeight;
}
alert("Adjusted Content:\n" + content);
var html = limiter.innerHTML;
alert("Final HTML:\n" + html);
count
是为了防止陷入无限循环,以防万一。没有必要。
Fiddle: http://jsfiddle.net/38p8hhve/