Hey folks!
Recently came across a great way to get lazy loading of images working the way I have been envisioning for some time. Figured I would post here to help others who want to accomplish the same on their sites.
This is just a quick overview of how I implemented lazysizes.js with my portfolio template I have been working on for a client.
My twig code looks like this now:
{% set service_image = null %} {# set to null for it to pass in for loop below #}
{% for featuredimage in page.header.project_featured_image %}
{% set service_image = page.media[featuredimage.name].derivatives(640, 1024, 200).sizes('(min-width:1024px) 1024px, 100vw') %}
<img class="lazyload" data-src="{{ service_image.url(false) }}" data-srcset="{{ service_image.srcset(false) }}">
{% endfor %}
I wasn't aware that I needed to set a variable as a null outside of a for loop so that it actually registers the variable.
Since I also wanted to grav's derivatives for responsive-ness I found a great minimal solution without the need to modify any of gravs existing codebase and it does work out quite well :)
If anyone needs any help with this feel free to respond!