1

現在画面に表示されている最初に表示されるDOM要素を取得するにはどうすればよいですか?

私は次のようなことを試みました

var el = document.elementFromPoint(x、y)

whileループでy座標を増やしますが、問題は、ドキュメントにcssマルチ列がある場合は機能しないことです。この場合、実際の要素ではなく、<html>タグが返されます。css列で機能する画面の(上、左)の要素を実際に取得する方法はありますか?

4

1 に答える 1

4

これは、から最も遠い要素を取得するだけの非常に基本的なtop例です。leftオフセットも考慮する必要があるかもしれないので、これはほんの始まりにすぎません。

bodyandhtml要素は常に最初に表示されるため、(以下に示すように)除外する必要があります。

フィドル

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');
于 2013-03-14T16:55:29.073 に答える