45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
document.addEventListener('DOMContentLoaded', function() {
|
|
var lazyGraphs = [].slice.call(document.querySelectorAll('[lazy]'));
|
|
var active = false;
|
|
|
|
var lazyLoad = function() {
|
|
if (active === false) {
|
|
active = true;
|
|
|
|
setTimeout(function() {
|
|
lazyGraphs.forEach(function(lazyGraph) {
|
|
if (
|
|
lazyGraph.getBoundingClientRect().top <= window.innerHeight &&
|
|
lazyGraph.getBoundingClientRect().bottom >= 0 &&
|
|
getComputedStyle(lazyGraph).display !== 'none'
|
|
) {
|
|
lazyGraph.data = lazyGraph.getAttribute('lazy');
|
|
lazyGraph.removeAttribute('lazy');
|
|
|
|
lazyGraphs = lazyGraphs.filter(function(image) { return image !== lazyGraph});
|
|
|
|
if (lazyGraphs.length === 0) {
|
|
document.removeEventListener('scroll', lazyLoad);
|
|
window.removeEventListener('resize', lazyLoad);
|
|
window.removeEventListener('orientationchange', lazyLoad);
|
|
}
|
|
}
|
|
});
|
|
|
|
active = false;
|
|
}, 200);
|
|
}
|
|
};
|
|
|
|
// initial load
|
|
lazyLoad();
|
|
|
|
var container = document.querySelector('.container-fluid.modules');
|
|
if (container) {
|
|
container.addEventListener('scroll', lazyLoad);
|
|
window.addEventListener('resize', lazyLoad);
|
|
window.addEventListener('orientationchange', lazyLoad);
|
|
}
|
|
|
|
});
|