Document.caretPositionFromPoint() - 座標からキャレットの位置を取得する
caretPositionFromPoint()は、Documentのメソッドです。指定した座標から最も近い、適切なキャレットの位置を返します。
概要
- 名前
- caretPositionFromPoint
- 所属
- Document
- IDL
CaretPosition? caretPositionFromPoint(double x, double y);
- 仕様書
- https://drafts.csswg.org/cssom-view/#dom-document-caretpositionfrompoint
説明
第1引数(x)には、水平方向の座標を指定します。
第2引数(y)には、垂直方向の座標を指定します。
返り値は、キャレットの位置を表すCaretPositionです。
デモ
Document.caretPositionFromPoint()のデモです。クリックした位置の座標を引数にして、メソッドを実行します。また、その位置に擬似キャレットとして赤い縦棒を挿入します。
<!-- このコードは編集できます。 -->
<!DOCTYPE html>
<head>
<style>
#caret {
position: absolute ;
background-color: red ;
font-weight: 700 ;
width: 4px ;
height: 21px ;
}
</style>
</head>
<body>
<p id="hoge">SYNCER SYNCER SYNCER SYNCER SYNCER SYNCER SYNCER SYNCER</p>
<hr>
<span id="caret"></span>
<div id="result"></div>
<script>
var element1 = document.getElementById( "result" ) ;
var element2 = document.getElementById( "hoge" ) ;
var element3 = document.getElementById( "caret" ) ;
document.body.onclick = function ( event ) {
var x = event.clientX ;
var y = event.clientY ;
var caretPosition = document.caretPositionFromPoint( x, y ) ;
console.log( caretPosition ) ;
element1.textContent = caretPosition ;
var domRect = caretPosition.getClientRect() ;
element3.style.top = domRect.y + "px" ;
element3.style.left = ( domRect.x - 2 ) + "px" ;
}
</script>
</body>
</html>
サポート状況
Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|
× | ● 20+ | × | × | × | × | × | × |
関連記事
- Document.elementFromPoint()
- elementFromPoint()は、Documentのメソッドです。指定した座標にある要素を1つだけ取得します。複数の要素が重なっていた場合、取得するのは、一番手前にある要素だけです。
- Document.adoptNode()
- adoptNode()は、Documentのメソッドです。外部のドキュメントから自身のドキュメントにノードを移動します。元のノードはなくなります。
- Document.createCDATASection()
- createCDATASection()は、Documentのメソッドです。CDATAセクション(CDATASection)を新しく作成します。このメソッドは、XML文書でしか利用できません。HTML文書で利用しようとすると、エラーが発生します。
- Document.currentScript
- currentScriptは、Documentのプロパティです。現在、処理を実行しているscript要素を返します。存在しない場合、値はnullになります。