マウスの位置はピクセル単位で取得でき、テキストエリア内のキャレットの位置はを介して取得できますselectionStart
。
しかし、マウスダウンの直後にテキスト座標で場所を取得するにはどうすればよいですか?
問題は、マウスダウンの時点でキャレットがまだ移動していないため、前の場所を取得することです。
textarea.addEventListener('mousedown', event => {
console.log(textarea.selectionStart) // logs previous location
})
click
代わりにイベントを使用してください。
MDNによると、mousedown
イベントはデフォルトのアクションが発生する前に発生しますが、click
イベントはデフォルトのアクション(この場合はキャレット位置の移動)が発生した直後に発生します。
注:これは、フルクリックアクションが発生した後に発生する
click
という点でイベントとは異なりclick
ます。つまり、ポインタが同じ要素内にあるときにマウスボタンを押して放します。ボタンが最初に押された瞬間にmousedownが起動されます。
textarea.addEventListener('click', event => {
console.log(textarea.selectionStart) // logs previous location
})
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加