Create lazy loading request or element like image, iframe, video... Make custom animation on lazy and not lazy element on all browser. You can also use our animations included in the lib (Demo). All of that just with html attributes.
<img lazy-src="https://picsum.photos/300/300?random=1" lazy-srcset="https://picsum.photos/300/300?random=2 900w" lazy-animation="corner-top-left" lazy-reset>
- See CHANGELOG
import lazyattr from "lazy-attr";
import "lazy-attr/dist/lazy-attr-animation.css";
//Vue.use(lazyattr)
<script src="https://unpkg.com/[email protected]/dist/lazy-attr.js" type="text/javascript"></script>
<link href="https://unpkg.com/[email protected]/dist/lazy-attr-animation.css" rel="stylesheet"/>
<script src="./dist/lazy-attr.js" type="text/javascript"></script>
<link href="./dist/lazy-attr-animation.css" rel="stylesheet"/>
lazy-loaded
When the element is matchedlazy-quit
When the element is not matched
- You can add lazy-reset if you want to dispatch the event not just once time
<div id="cars" lazy-observe></div>
document.querySelector('#cars').addEventListener('lazy-loaded', function(event){
const target = event.target;
target.textContent = "Hey I'm lazy";
});
- You can set a class
lazyattr
wich be transform inlazyloaded
after the element is loaded (work on the pointer and parent) - You can make a beatiful skeleton loader with
lazy-skeleton
,lazy-skeleton-corner
andlazy-skeleton-top
class
- To set a skeleton loader on an image pls set it on his parent. After you need to put
lazy-animation-pointer="#parent"
on the image to remove it after load. - Set a skeleton loader on a div with
lazy-background
will automatically remove it after load.
Parameters | Usage |
---|---|
lazy-observe | Just observe the element to do lazy request for example |
lazy-reset | Reset the animation on scroll |
lazy-srcset | Same as srcset attribute |
lazy-src | Image soucre | iframe source | video source |
lazy-background | Image source to make a lazy background image |
lazy-size-width | Minimum width size |
lazy-size-height | Minimum height size |
lazy-animation | Animation to lauch after full load of element |
lazy-animation-time | Animation duration (time in ms) |
lazy-animation-delay | Animation delay (time in ms) |
lazy-animation-pointer | Wich element will be animated after the lazy element is load (expl: "#id", ".class", "tag") |
lazy-animation-function | Animation timing function like css |
lazy-animation-count | Animation repeatition like css (expl: infinite) |
Parameters | Usage |
---|---|
lazy-video | Put a poster while user dont click on the video |
Parameters | Usage |
---|---|
lazy-embed | Iframe link |
lazy-poster | Put a poster while user dont click on the video |
Parameters | Usage |
---|---|
version | Get actual version of lazy-attr |
parameters | Get all possible attributes of lazy-attr |
animations | Get all animations |
<img lazy-src="..." lazy-srcset="..." lazy-animation="corner-top-left">
zoomin
zoomout
opacity
slide-left
slide-right
slide-bottom
slide-top
corner-top-left
corner-top-right
corner-bottom-left
corner-bottom-right
shake
rotate
blur
flip
flip-up
.my-name{
opacity: 0;
animation: animation-name 1s forwards;
}
@keyframes animation-name{
100%{
opacity: 1;
}
}
- Work on scale and slide animations
- By default it's:
:root{
--slide-start: 33%;
--slide-velocity: 7px;
--scale-velocity: 0.035;
--scale-start: 0.4;
}