lazysizes
Version:
High performance (jankfree) lazy loader for images (including responsive images), iframes and scripts (widgets).
70 lines (51 loc) • 1.78 kB
Markdown
# lazysizes native loading extension
This extension automatically transforms `img.lazyload`/`iframe.lazyload` elements in browsers that support native lazy loading.
## Usage
Simply include the plugin:
```js
import lazySizes from 'lazysizes';
import 'lazysizes/plugins/native-loading/ls.native-loading';
```
And use normal lazySizes markup in combination with the `loading` attribute:
```html
<img
loading="lazy"
data-sizes="auto"
data-srcset="http://placehold.it/175x75 175w,
http://placehold.it/350x150 350w,
http://placehold.it/700x300 700w,
http://placehold.it/1400x600 1400w"
data-src="http://placehold.it/700x300"
class="lazyload" />
```
## `nativeLoading` Options
Options are changed at the `lazySizes.cfg.nativeLoading` options object:
```js
import lazySizes from 'lazysizes';
import 'lazysizes/plugins/native-loading/ls.native-loading';
lazySizes.cfg.nativeLoading = {
setLoadingAttribute: true,
disableListeners: {
scroll: true
},
};
```
### `setLoadingAttribute` `boolean` option
By setting `setLoadingAttribute` to `true`. LazySizes will automatically set the `loading="lazy"` attribute for you. `
This way all `img`/`iframe` elements will natively lazyloaded without any changes to your normal lazySizes markup.
### `disableListeners` `boolean`/`eventMap`
Due to the fact that you can use lazySizes for many things. Native lazy loading does not remove any event listeners automatically.
By setting `disableListeners` to `true` all events listeners are removed. Often it makes sense to only remove specific events like the scroll event for example.
The possible full event map looks like this:
```html
{
focus: true,
mouseover: true,
click: true,
load: true,
transitionend: true,
animationend: true,
scroll: true,
resize: true,
}
```