【发布时间】:2015-02-20 16:32:44
【问题描述】:
给定一个文本块,我想将它分成 N 像素高的部分——显示的行,在应用 CSS 后计算,并向下舍入,以便最终显示整数行数。
然后我想显示文本的偏移量并显示,例如第 100-120 行、第 121-140 行等。
线条的高度可能不一样,并且会换行。
如何通过 JavaScript 做到这一点?
设计目标:
- 显示一本书,一次一页。
- 允许读者跳转到特定页面。
- 将某些文本部分的行放在一起,避免出现孤行(页面顶部或底部的单独行)
- 让某些样式开始一个新页面(例如章节标题)。
不起作用的事情:
-
split将文本按字符长度分成固定的块。这不满足任何显示要求。 - 提前基于
ems 计算高度。这无法处理换行。 - 渲染到屏幕外区域,设置
overflow: hidden,并将其固定在较大的负片位置。仍然无法正确计算高度,因此您最终会将线条垂直切成两半。
【问题讨论】:
-
带有
split计数器和循环。 -
听起来像是本末倒置。通常你有一个未知高度的区域,应用
overflow: auto;属性并列出该区域内适合的行数。你能给出这样的用例吗? -
我添加了更多细节。
-
您必须向我们提供更多细节。我想说使用
split和一个包含字符数和单词的数据结构。然后你可以循环遍历数据结构并根据需要获取信息。这可能有点矫枉过正,但很难从你给的东西中分辨出来
标签: javascript css