Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测换行javascript_Javascript_Css_Line Breaks - Fatal编程技术网

检测换行javascript

检测换行javascript,javascript,css,line-breaks,Javascript,Css,Line Breaks,我正试图找出如何使用JavaScript检测换行(响应)。我想删除第3行和第2行末尾的字符,其中有一些像这样的点“…” 我知道线的高度是20px。我知道我通过除以div height/行高来检查行数。直到第3行开始,我才知道如何获取文本 尝试了无用的MJ中的溢出和省略号部分: 他只写他写的课文。。不是我自己的文本 更新#2: 尝试了Matthias的解决方案,但在响应方面遇到了问题。 我试着在resize事件上添加一个窗口,并添加一个带有全文的额外div function ellipsiz

我正试图找出如何使用JavaScript检测换行(响应)。我想删除第3行和第2行末尾的字符,其中有一些像这样的点“…”

我知道线的高度是20px。我知道我通过除以div height/行高来检查行数。直到第3行开始,我才知道如何获取文本

尝试了无用的MJ中的溢出和省略号部分:

他只写他写的课文。。不是我自己的文本

更新#2:

尝试了Matthias的解决方案,但在响应方面遇到了问题。 我试着在resize事件上添加一个窗口,并添加一个带有全文的额外div

function ellipsizeTextBox(id) {
   var el = document.getElementById(id);
   var fullTextEl = $(el).parent().find('.MB-Item-Description-Full').text();
   var wordArray = fullTextEl.split(' ');
   while(el.scrollHeight > el.offsetHeight){
     wordArray.pop();
    el.innerHTML = wordArray.join(' ') + '...';
   }
}

window.onresize = function(event){
  $( ".MB-Item-Description" ).each(function( index ) {
    var id = $(this).attr('id');
    ellipsizeTextBox(id);
  });
}

缩小浏览器时效果很好,增大浏览器时不会添加更多单词。

我的建议是使用溢出:隐藏和文本溢出:省略号不起作用,因为多行文本没有省略号。今天我知道了,所以你的问题在某种程度上也帮助了我

出于对如何解决这个问题的好奇,我在上找到了一个小JS解决方案,它在我的exmaple中非常有效,如下所示:

函数ellipsizeTextBox(id){
var el=document.getElementById(id);
var wordArray=el.innerHTML.split(“”);
同时(el.scrollHeight>el.offsetHeight){
pop();
el.innerHTML=wordArray.join(“”)+’…”;
}
}
ellipsizeTextBox('truncate')
.text{
线高:20px;
最大高度:40px;
宽度:200px;
边框:1px实心#ddd;
利润率:10px;
溢出:隐藏;
}

乱数假文
赫特·格海姆·达博克·范亨德里克·格罗恩,1984年荷兰卡姆皮奥宁·范德施里杰弗斯大赛。

您是否尝试过使用仅限css的解决方案,如线夹

。打破这个{
溢出:隐藏;
显示:-网络工具包盒;
-webkit线夹:2个;
-网络工具包盒方向:垂直;
}
Lorem ipsum door sit amet,一位杰出的领导者。Morbi调味品,一种车辆内脏,以及一种前胃的苏打水。埃蒂亚姆·欧·内克·洛雷姆。自由阿库的福斯。前庭前的共同门前体。前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭,前庭。佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。毛里斯前隐匿性盲沟,位于同侧大前庭a。前庭上的空窗,是我们的生命。大鼠右叶同侧终末。

这是一个非常复杂的问题。Vivamus scelerisque ex risus,非拍卖人。发酵液中的埃尼安。一只小狮子座。在厄尔纳埃利芬德的马克西姆斯·图尔皮斯中,有一个很好的例子,这是自由宣言。斜颈前移。整体设施,双腔静脉曲张,静脉曲张,静脉曲张,静脉曲张。努克是欧盟的重要人物。不是土鳖的亚库利斯,是尼布·希特·阿梅特,是亨德雷特·菲利斯。这是威尼斯人的习惯用语,是一种名言,是一种巨大的工具。Aenean euismod viverra dui,一种ultricies nunc发酵剂eu。Aliquam erat.
为什么不设置
行高的
div
最大高度
,然后添加
文本溢出:省略号
溢出:隐藏
?对我来说,听起来像是XY问题。就像@MatthiasSeifert所说的,只需将div的大小设置为所需的最大行高。因为这不起作用,所以不能在多行文本上使用
文本溢出:省略号
,这些内容来自何处?这看起来像是服务器的作业。不javascript@zmuci谢谢你提供的信息,我从来没有遇到过这种情况,所以我认为它可以工作。我想这并不是真的适用于所有浏览器?糟糕的是,它不适用于所有浏览器。很好,我相信你的解决方案是有效的。虽然它不是真正的响应,所以我尝试将此函数添加到window.resize以使其响应。我添加了一个全文div,它将始终包含全文,这样innerHTML就不会被覆盖。在缩小浏览器屏幕时工作正常,在想再次放大浏览器时不起作用。你能做一个提琴的例子让我可以玩一下吗。。我也已经在玩了……)您是否找到了解决方案?:)对不起,我还没来得及进一步调查,我们在这里的工作压力很大。我会在午餐休息时间尝试一些东西:)对不起,你得等一等