In reply to Paul.

Google does appear to support lazy-loading via javascript so not sure why they worded it odd. They appear to only dissuade the use of lazyloading based on user interactions like clicking etc. :
https://developers.google.com/search/docs/guides/lazy-loading

"Here are a few examples on how you can do this:

Native lazy-loading for images and iframes.
IntersectionObserver API and a polyfill
A JavaScript library that supports loading data when it enters the viewport."

They also give a great example of IntersectionObserver API in action here: