我有一个Markdown编辑器,旁边是Markdown预览版。我正在尝试添加滚动同步功能,如此演示:
https://markdown-it.github.io/
但据作者说:
演示中的现有解决方案是一个肮脏的黑客,可能在textarea内容的高度计算中有不同的错误。如果您需要保证结果,最好使用codemirror / ace而不是textarea。它们提供更好的线偏移。
我没有在任何地方找到类似的插件,所以我开始重新创建同步算法。我偶然发现的问题是,要使算法正常工作,您需要在编辑器中确切的线条高度。当线条被软包裹时,这很棘手。
所以问题是如何在Ace中确定特定线的线高?
答案 0 :(得分:0)
如果您有cursor = {row, column}
,可以使用editor.renderer.scrollCursorIntoView(cursor)
将其滚动到视图中,或editor.renderer.scrollToLine(row)
滚动动画。
请注意,要使动画生效,您需要使用editor.setOption("animatedScroll", true)