このように流れるコンテンツを含むテキストエリアがあるとします
––––––––––––––––––––––––––– | これはいくつかのテキストです。 | このようにラップします。| –––––––––––––––––––––––––––
text-cursorがtextareaの最初の行にあるかどうかをどのように判断できますか?
明らかに\n
、最初の改行の前にカーソルが表示されるかどうかを確認したい場合は、改行文字()のチェックは機能しますが、「ソフト」改行のテストはより難しいようです。
これは、で実験するためのサンプルjsFiddleです。
私はまだ戦略を考え出していませんが、カーソル位置までテキストを複製されたテキストエリア(またはdiv)にコピーし、必要なだけ幅を作成して折り返さないようにする必要があると思われます。複製された領域の幅が元の領域よりも小さい場合、カーソルは最初の行にある必要があるように見えます。より単純なオプション、よりエレガントなもの、または(何よりも)既存の十分にテストされたソリューションがあるかもしれません。
ターゲットブラウザはWebkit(Chrome / Safari)とFirefoxです。つまり、現時点ではIEの互換性は問題ではありません(それが違いを生む場合)。
読んでくれてありがとう。
編集:マウスカーソルではなく、テキストカレットの行番号を探しています。
falsarellaは優れた回答をし、質問のあいまいさを浮き彫りにしました。私が探しているのは、テキストカーソル(「caret」の方が良い単語かもしれません)が最初の行にあるかどうかです。質問とjsFiddleを反映するように更新しました。