javascript - 文本中间的省略号(Mac 风格)

标签 javascript jquery css truncation

我需要在可调整大小的元素内的文本中间实现省略号 ("...")。 Here是它可能的样子。所以,

"Lorem ipsum dolor sit amet. Ut ornare dignissim ligula sed commodo."

成为

"Lorem ipsum dolor sit amet ... commodo."

当元素被拉伸(stretch)到文本的宽度时,我希望省略号消失。如何做到这一点?

最佳答案

在 HTML 中,将完整的值放在自定义的 data-* 属性中,例如

<span data-original="your string here"></span>

然后将 loadresize 事件监听器分配给一个 JavaScript 函数,该函数将读取原始数据属性并将其放入您的 innerHTML跨度标签。这是省略号函数的示例:

function start_and_end(str) {
  if (str.length > 35) {
    return str.substr(0, 20) + '...' + str.substr(str.length-10, str.length);
  }
  return str;
}

调整值,或者如果可能的话,使它们动态化,如果需要的话,对于不同的对象。如果您有来自不同浏览器的用户,您可以从 dom 中其他地方使用相同字体和大小的文本窃取引用宽度。然后插入适当数量的字符以供使用。

还有一个提示是在 ... 或 who 消息上有一个缩写标签,以使用户能够获得包含完整字符串的工具提示。

<abbr title="simple tool tip">something</abbr>

关于javascript - 文本中间的省略号(Mac 风格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/831552/

相关文章:

html - 裁剪出css图片容器

javascript - 重置间隔和重发功能

jquery - 如何将模糊事件绑定(bind)到实时点击事件?

html - 如何删除母版页中的页眉和 sidenav?

javascript - 如何创建这个带有文字的图标?

jquery - 使用jQuery将数据插入Elasticsearch并获取最后插入的文档的ID

javascript - ionic 2 : when I pass array to component I get a string on component. ts

javascript - Angular 使用 Jquery 插件问题...动态下拉数据

javascript - 如何读取视频标签中的所有视频类型

javascript - 简单的javascript问题