HTML上のある要素が見える範囲にあるかを JavaScript で判定したい。なんか1発で判定できるメソッドがあった気がしたが見つからなかったので、以下のようになった。 /** * element の一部でも見える位置にあるか * margin が指定された場合、その分上下左右にビューポートを拡大(または負の場合は縮小)しているとみなして判定する */ function isInViewport (e, margin) { const rect = e.getBoundingClientRect(); if (!margin) margin = 0 return ( rect.bottom >= -margin && rect.right >= -margin && rect.top <= window.innerHeight + margin && rect.left <= windo