Javascript 在特定行数后插入省略号
我试图只显示前5行文本。问题是文本的设置方式是div中有多个Javascript 在特定行数后插入省略号,javascript,html,css,Javascript,Html,Css,我试图只显示前5行文本。问题是文本的设置方式是div中有多个标记,例如 <div class="myText"> <p>some text</p> <p>some text</p> <p>some text</p> <p>some text</p> <p>some text</p> <p>some text</p>
标记,例如
<div class="myText">
<p>some text</p>
<p>some text</p>
<p>some text</p>
<p>some text</p>
<p>some text</p>
<p>some text</p>
<p>some text</p>
</div>
一些文本
一些文本
一些文本
一些文本
一些文本
一些文本
一些文本
我在这个网站上看过很多答案,比如,和,在其他地方,比如,和,但是没有一个适合这种情况,在这种情况下,我希望最后一行的最后一个单词后面有省略号,即使它没有到达最后一行,并且有多个
标记
我正在使用带Angular的JavaScript。试试jQuery点插件。网址: 我已在中制作了一个代码示例 代码如下:
$(文档).ready(函数(){
$(“.myText”).dotdot();
});代码>
p{
保证金:0;
填充:0;
字体:12px/15px Verdana,日内瓦,塔荷马,Arial,Helvetica,无衬线;
}
.myText{
高度:75px;/*这需要是5行文本的高度。这里是15px(一行的行高)*5=75px*/
}
一些文本
一些文本
一些文本
一些文本
一些文本
一些文本
一些文本
是的,您可以使用一些插件,但这种逻辑并不难自己编写。基本概念是不断减少文本量,直到合适为止。这听起来很昂贵,但实际上效果很好,必要时可以进行优化
// Populate an element with text so as to fit into height
function truncate(elt, content, height) {
function getHeight(elt) { return elt.getBoundingClientRect().height; }
function shorten(str) { return str.slice(0, -1); }
elt.style.height = "auto";
elt.textContent = content;
// Shorten the string until it fits vertically.
while (getHeight(elt) > height && content) {
elt.textContent = (content = shorten(content)) + '...';
}
}
要使用此选项,请执行以下操作:
truncate(div, "Some very long text to be truncated", 200)
要与HTML内容一起使用,请根据需要进行调整/扩展。我更喜欢这个答案,因为如果不需要,我宁愿不使用插件,并且可以根据我的具体情况进行优化,以降低成本。
// Populate an element with text so as to fit into height
function truncate(elt, content, height) {
function getHeight(elt) { return elt.getBoundingClientRect().height; }
function shorten(str) { return str.slice(0, -1); }
elt.style.height = "auto";
elt.textContent = content;
// Shorten the string until it fits vertically.
while (getHeight(elt) > height && content) {
elt.textContent = (content = shorten(content)) + '...';
}
}