【问题标题】:How to get text which is visible to user in case of text overflow?如果文本溢出,如何获取用户可见的文本?
【发布时间】:2021-11-09 08:11:54
【问题描述】:

我有一个文本输入,我使用省略号表示文本已超出输入大小。有没有办法查看用户可见或隐藏在省略号后面的文本? 谢谢

这里的用例是我向用户显示一个用逗号分隔的列表。如果列表超出输入字段的大小,我想显示类似item1, item2,... +5 more 的内容。为此,我需要知道哪些文本对用户可见/隐藏在省略号后面。

【问题讨论】:

  • 您可以将该文本添加为​​title。以便onhover 用户可以看到
  • 在悬停时添加工具提示
  • 你可以使用overflow: scrolloverflow-x: scrolloveflow-y: scroll,这样如果文本很长,用户可以滚动查看它
  • 根据您的新编辑,您必须使用 jquery/javascript 来获取所需的字符串并将其分配给输入字段。
  • @SureshPonnukalai 您能否编辑您的答案以说明如何去做。谢谢

标签: html jquery css web


【解决方案1】:

您可以为相同的文本添加title。当用户hover 文本时,它将显示原始文本。我已经给出了inputp 的样本

.ellipse {
text-overflow:ellipsis;
width:70px;
overflow:hidden;
white-space:nowrap;
}
<p class="ellipse" title="This is the very big text">This is the very big text</p>

<input class="ellipse" title="This is the very big text" value="This is the very big text" />

编辑

根据您的新要求,您必须使用 JS/JQuery 来获得所需的结果。我不确定您将如何获得您的情况下的用户名。我给了样本,比如有一系列项目。你也不需要使用任何 CSS ellipsis 属性,因为你真的不是在寻找那个解决方案。看下面的sn-p

var items = ['item1', 'item2', 'item3', 'item4', 'item5', 'item6'];

var orivalue = "";
var disvalue = "";

for(i=0; i<items.length; i++) {
 orivalue += (items.length - 1 == i) ? items[i] : items[i]+ ", ";
}
tmp = items.length - 2;
if(items.length > 2) {
  disvalue = items[0] + ", " + items[1] + ", ... +" + tmp + "more";
 }
 document.getElementById("user").value = disvalue;
 document.getElementById("user").title = orivalue;
.ellipse {
  width:140px;
}
&lt;input id="user" class="ellipse" title="" value="" /&gt;

【讨论】:

  • 谢谢,但这不是我想要的。我已经根据实际要求编辑了问题。请看一看。
  • 根据您的新编辑,您必须使用 jquery/javascript 来获取所需的字符串并将其分配给输入字段。你能分享你尝试过的jquery/javascript代码吗??
  • 我尝试使用 html value 属性。但它会返回整个文本,而不是用户可见的内容。
  • 给出如何获得所需输出的逻辑。
猜你喜欢
  • 2015-10-02
  • 2018-11-12
  • 1970-01-01
  • 2010-12-23
  • 2011-01-22
  • 1970-01-01
  • 2021-08-31
  • 2022-12-09
  • 2015-08-24
相关资源
最近更新 更多