7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

スクロールのあるDOMで表示中の要素を取得

Last updated at Posted at 2015-11-07

overflow: scroll;している要素内で、現在表示しているDOMを取得したかった。
具体的には下の画像のケース(ElectronアプリなのでHTMLです)

スクリーンショット 2015-11-07 17.12.38.png

var scrollElement = document.getElementById('scroll-element');
// スクロール要素の絶対座標を取得
var rect = scrollElement.getBoundingClientRect();
// ドキュメントの絶対座標からスクロール要素で表示している要素の一番上のやつを取得
var targetElement = document.elementFromPoint(rect.left, rect.top);

コメントにあるとおり、スクロール要素の絶対座標を取得して、ドキュメントの絶対座標から要素取ると取れた。
なんかもっといい方法あったら教えて下さい。

参考

document.elementFromPoint - Web API インターフェイス | MDN https://developer.mozilla.org/ja/docs/Web/API/Document/elementFromPoint
element.getBoundingClientRect - Web API インターフェイス | MDN https://developer.mozilla.org/ja/docs/Web/API/Element/getBoundingClientRect

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?