現在画面に表示されている最初に表示されるDOM要素を取得するにはどうすればよいですか?
私は次のようなことを試みました
var el = document.elementFromPoint(x、y)
whileループでy座標を増やしますが、問題は、ドキュメントにcssマルチ列がある場合は機能しないことです。この場合、実際の要素ではなく、<html>タグが返されます。css列で機能する画面の(上、左)の要素を実際に取得する方法はありますか?
現在画面に表示されている最初に表示されるDOM要素を取得するにはどうすればよいですか?
私は次のようなことを試みました
var el = document.elementFromPoint(x、y)
whileループでy座標を増やしますが、問題は、ドキュメントにcssマルチ列がある場合は機能しないことです。この場合、実際の要素ではなく、<html>タグが返されます。css列で機能する画面の(上、左)の要素を実際に取得する方法はありますか?
これは、から最も遠い要素を取得するだけの非常に基本的なtop
例です。left
オフセットも考慮する必要があるかもしれないので、これはほんの始まりにすぎません。
body
andhtml
要素は常に最初に表示されるため、(以下に示すように)除外する必要があります。
var first;
$(':visible').not('body, html').each(function() {
if (typeof first == 'undefined') {
first = $(this);
} else if ($(this).offset().top < first.offset().top) {
first = $(this);
}
});
first.addClass('highlight');