如何使用java脚本滚动到富文本框中的指定行

How can I scroll to a specified line in a rich text box using java script

本文关键字:文本 java 何使用 脚本 滚动      更新时间:2023-09-26

我有一个div,其中有许多文本行。div是高度限制的,因此我有一个scroll。是否有一种方法在java script滚动到指定的行。

如果是在html页,我总是可以用书签,如何在java脚本的帮助下为富文本框或任何html container做到这一点。

任何帮助都非常感谢。

Nandish

这里的问题是"线"的概念。由于您在浏览器中绘制了一个具有给定宽度(可能是动态的)的框,并且其中有文本,因此行取决于换行。

例如,文本:"hello world, I need my pizza now"如果宽度非常小,则为两行;如果宽度足够大,则为单行。

我的意思是,"行"是一个相对于换行本身的概念,所以即使计算div内的行也是不可能的

如果你的行是由用户定义的,用换行和回车,或者用
或者其他什么,这是不同的,但是如果行是由换行生成的,这发生在呈现时,你不知道它是如何发生的。

如果你有一个固定的字体大小,你可以推测行数,通过一个简单的分割框的高度/字体大小+行间距。

然而,如果你的文本很丰富,它可以包含图像等,这是行不通的。

另一个可能的解决方案是使用getClientRects(这对我有效)

https://developer.mozilla.org/en/DOM/element.getClientRects

返回文本矩形对象的集合:

http://help.dottoro.com/ljgupwlp.php

希望这对你有帮助,我以前遇到过这个问题两次,它不是一个简单的函数调用,你应该理解什么是行,换行,客户端,文本矩形,字体…

祝你好运!

如果您指的是<div contenteditable="true">,您可以试试:http://jsfiddle.net/cMMy5/.

基本上是div的scrollTop属性。

$div = $('div');
$('button').click(function() {
    $div.get(0).scrollTop = 10;
});