!npmnpmnpm-url

The element inside the
svelte-lazyload
Lazy loading library using the svelte frameworkGetting Started
Look at the example folder for a simple setup.Installation
npm i svelte-lazyload
Usage
<script>
import { LazyLoadContainer, LazyLoad } from 'svelte-lazyload';
let statuses = [
200,
201,
202,
203,
204,
206,
207,
208,
226,
300,
301,
400,
401,
403,
500
];
</script>
<LazyLoadContainer>
{#each statuses as status, i}
<LazyLoad id="{i}">
<div style="min-height: 500px">
<img src='https://httpstatusdogs.com/img/{status}.jpg' alt={status}/>
</div>
</LazyLoad>
{/each}
</LazyLoadContainer>
Tuning
svelte-lazyload
uses an intersection observer to determine when an element comes into the view port. It is possible to tune that behavior in accordance to the official doc and pass a prop threshold
to the LazyLoadContainer
. This number between 0 and 1 determines at which percentage of the target's visibility the element will be rendered. For example, a value of 0.5 means that the placeholder element has to be halfway visible for it to be swapped out for the child element of the LazyLoad
tags. The default is 0.01.Nota bene
Theid
prop is mandatory for the <LazyLoad>
tag as it will be used to uniquely observe the element via an intersection observer.The element inside the
<LazyLoad>
tags must be able to render immediately or at least have a min-height. If not, during loading time, your component will have a height of 0, making the component under it visible and repeating the same problem. This cascade will end up loading more components than you wish for.