jQueryでは、is(":visible") で要素の表示状態が簡単に取れていた。親要素を辿って表示状態を見て1つでも非表示であれば子孫も見えないと判断してくれたのに、脱jQueryしたことで途端にparentElement追う面倒くさい再帰ロジックを書く羽目になっていた。
getBoundingClientRect() や IntersectionObserver() などは、今の画面上の可視領域上での要素の表示判定なので目的に適ってない。
結論から言うと調べ方が足りんかった。というか新機能のアップデート1をウォッチしてなくて自分の脳みそもアップデートしていないだけだった。
んで、ついさっきデベロッパーコンソールで、要素 . で出てくる入力アシストのリスト見てたら、「なんだこれは!!」なメソッドを見つけた次第。
名前からしてそのもの!
checkVisibilityだと〜!! これやーーーん!
しかもオプションでopacityの扱いも指定できる。is(":visible")より優れてる。
-
Chromeは2022/9/2から! iOS Safari対応も2024/3に! ↩