使用Javascript查找文本溢出的位置

Find position of text overflow using Javascript

本文关键字:位置 溢出 文本 Javascript 查找 使用      更新时间:2023-09-26

类似于确定是否有HTML元素';s内容溢出,如何找到溢出元素的索引位置?

示例:如果div中有一个长字符串,在第100个字符处溢出,我如何找到那个位置?

编辑:更多细节,因为@dfsq问:我正在努力创建一个很好的纯文本阅读器,可以翻页。

下面是一些示例代码。您需要从零个字符开始,然后逐个添加每个字符,并检测offsetWidth何时超过scrollWidth。

function find_overflow_index(elt, str) {
  elt.textContent = '';
  for (var i=0; i < str.length; i++) {
    elt.textContent += str[i];
    if (elt.scrollWidth < elt.offsetWidth) return i;
  }
  return -1;  // no overflow
}
find_overflow_index(
  document.getElementById("foo"), 
  "Long string which might overflow");