wp_back/wp-content/plugins/visual-portfolio/assets/css/lazyload.scss
2024-05-20 15:37:46 +03:00

60 lines
1.5 KiB
SCSS

@import "./variables-lazyload";
/*
* Visual Portfolio Lazyload Images
*
* - :first-of-type is used to prevent conflicts with hover image (Pro feature)
*/
// LazyLoad image
img.vp-lazyload,
img.vp-lazyloaded,
img.vp-lazypreload,
img.vp-lazyloading {
opacity: 0;
transition: var(--vp-lazyload-transition-duration) opacity;
}
img.vp-lazyloaded {
opacity: 1;
}
:is(.vp-portfolio__item-img, .vp-portfolio__thumbnail-img) {
// Extra check for lazy loading class on the inner image
// to make sure image will be lazy loaded by Visual Portfolio.
&:has(img:first-of-type:is(.vp-lazyload, .vp-lazyloading, .vp-lazyloaded))::before {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
// Fixed possible bug with inaccessible links on images in the Classic style.
pointer-events: none;
visibility: visible;
content: "";
background-image: var(--vp-lazyload-images__background);
background-size: var(--vp-lazyload-images__background-size);
opacity: 1;
transition: var(--vp-lazyload-transition-duration) var(--vp-lazyload-transition-duration) opacity, var(--vp-lazyload-transition-duration) var(--vp-lazyload-transition-duration) visibility;
}
&:has(img:first-of-type.vp-lazyloading)::before {
animation: vp-lazyload-placeholder var(--vp-lazyload-images__animation-duration) ease-in-out infinite;
}
&:has(img:first-of-type.vp-lazyloaded)::before {
visibility: hidden;
opacity: 0;
}
}
@keyframes vp-lazyload-placeholder {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}