【发布时间】:2016-01-13 19:03:30
【问题描述】:
上下文:
我正在做一个项目,如果完成得当,它应该可以用作专门的文本编辑器。它特别需要页面来输出,因此与大多数在线文本编辑器不同,它们可以简单地使用不断扩展的文本框或机械上类似的东西,我正在寻找一种方法来创建一个“新页面”(本质上是一个新的容器 div),当它溢出时它在里面。
我找到了一个related stackoverflow question,从我的搜索看来,大多数解决方案都不是主动更改文本的最佳解决方案,而是更适合在页面渲染中使用。在最佳情况下,它的功能应该类似于在 Word 文档上创建新页面(溢出时自动创建)并使用 javascript/jquery。
我意识到这样做可能比最初看起来更复杂,但我希望有人知道一篇文章或一段代码可以为我指明正确的方向。
问题:
我认为我实际上可以处理“创建新页面”(下一个容器 div),但我不确定如何处理主动溢出的文本。例如,如果有人删除了第一页上的一些文本,那么如果第二页上的文本只是挂在那里,那将非常笨拙。如果您正在编辑 Word 文档,我希望文本/页面的反应至少类似。
我不想在每次添加或删除字符时检查文本,但这是唯一的方法吗?如果是这样,对我来说最有效的方法是什么,这样我就不会让浏览器陷入困境。
这是我正在进行的项目,旨在提供更多背景信息http://www.naturalcrit.com/homebrew/
【问题讨论】:
-
我认为您必须主动检查用户输入才能重排文本。为什么不使用 collumnizer 插件之类的东西作为起点:welcome.totheinter.net/columnizer-jquery-plugin
-
我不明白你会如何摆脱看击键。除非你能捕捉到像
:overflow这样的伪样式选择器,但那是不存在的。需要一个你正在做什么的例子才能肯定地说出来。您可以将div包裹在div中并查看内部div的高度或宽度达到外部div的阈值,然后移动“溢出”。您仍然必须将事件与击键联系起来,因为每次更改其内容时,您都在测量内部div的w和h。也许你可以绑定到.change()。 -
查看stackoverflow.com/questions/2059743/… 了解一些溢出检测技术。
-
@BornToDoStuff 我认为对于这个应用程序,我会坚持使用 1
div并且只显示它的一部分,在某种意义上是一个视口,并且随着更多内容的附加或更改,更多的列是创建了文本换行的内容。然后我们在视口中滚动 div。 -
@BornToDoStuff 是的!让列不断增长。我在页面中的列样式方面没有看到太多,但我看起来也不是很努力。
标签: javascript jquery html css