在线编辑器与“现场预览”:有一个文本区域在左边和预览div在右边。每当文本区域发生更改时,预览就会更新。
这对于小型文档很好;但是对于很长时间的文档,它会变得缓慢,因为预览中有大量的DOM元素不断地被重新绘制。
最好只发送到预览,即文本区域中当前可见的部分(因为它是需要预览的部分)。
有一种启发式的方法可以获得文本区域的第一行:
然而,这只适用于“短”行,即不换行的行。通常,文本区域中“行”的数量是,而不是的换行数;没有换行的长行会包装,可能占用许多“行空间”。
人们可以尝试计算一行占用的“行空间”的平均数量(换行之间的平均字符数、文本区域的宽度、字体的大小.)但这是非常不精确的。
是否有方法知道第一个和最后一个可见字符在文本区域中的位置?
发布于 2011-09-10 21:48:55
作为一种疯狂的方法,您可以查看王牌如何将文本转换为画布绘制的线条。我假设通过这种方法,您可以确定确切的位置(或者更好的说,是当前可见的确切的line
对象)。
但是,如果画布生成的文本在复杂性上与预览中的内容兼容,这也可能是一种恶性循环。
或者,您可以使用固定宽度的字体,它将使您了解单行中字符的确切数量,从而可以计算精确的第一行/最后一行。
https://stackoverflow.com/questions/7331701
复制相似问题