That support for zero-dimension targets is not great specifically for elements placed at the end of a scrolling container (i.e. the bottom or right) in some browsers. For those cases, adding some space between the observer and end of the scrolling container (e.g. adding padding to an ancestral element that is a descendant of the scrolling container) or a root margin solves the problem.
Wraps the IntersectionObserver API and calls the given callbacks when the component's visibility changes (on enter/exit view).