大量のテキストを編集するために非常に長いテキストエリアを持つページがあります。通常、入力時に、キャレットがテキストエリアの下部に近づくと、ページが自動的にスクロールして常にビューポート内にキャレットを保持します(Firefoxは一度に1行ずつスクロールします)。Chromeはキャレットをビューポート)。テキストエリアのキャレットを常にビューポート内に保持するにはどうすればよいですか?
私の問題は、私はプログラム的にどのようなユーザー・タイプに基づいてテキストエリアの内容を変更していたという事実から来ています。場合によっては、余分なコンテンツを追加する必要があるため、キャレットを非表示にします。
ユーザーがキーを押すと、自動スクロールが開始され、キャレットはスクロールされて表示されますが、以前は入力されていないので、ユーザーがキャレットを見失ってしまいます。私は、ブラウザが自動スクロールするためのテキストエリアでキーイベントを単にトリガすることができますが、トリガされたイベントはユーザーの動作を完全にエミュレートせず、応答も得られませんでした。キャレットの文字位置を見つける
- :私は今、見ることができます
唯一の解決策はでキャレットのXY座標を取得しようとすることです。
- キャレット位置にマーカーを付けてテキストエリアの内容を反映するdivを作成します。
- マーカーの位置を測定する。
これを行うための簡単な方法はありますか?
が関連している可能性があり:http://stackoverflow.com/a/12738472/1615483 –