Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MaximilianLloyd/9de5dcd4a2e305e806e356ca91d2f82b to your computer and use it in GitHub Desktop.
Save MaximilianLloyd/9de5dcd4a2e305e806e356ca91d2f82b to your computer and use it in GitHub Desktop.
export default function(elements) {
return new Promise((resolve, reject) => {
let elementsLoaded = 0;
const isFinishedLoading = (a) => {
if (elementsLoaded === elements.length) {
resolve();
}
};
elementsLoaded = 0;
elements.forEach(el => {
if(el.nodeName === 'IMG') {
if (el.complete) {
elementsLoaded++;
}
else {
el.addEventListener('load', () => {
elementsLoaded++;
isFinishedLoading();
});
}
}
if(el.nodeName === 'VIDEO') {
inlineVideo(el, false);
if(el.readyState === 4) {
elementsLoaded++;
isFinishedLoading();
} else {
el.addEventListener('canplay', () => {
elementsLoaded++;
isFinishedLoading();
});
}
}
isFinishedLoading();
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment