@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
28 lines (27 loc) • 945 B
text/typescript
const poster = document.getElementById('polygonjs-loading-poster');
const container = document.getElementById('polygonjs-progress-bar-container');
const mainElement = document.getElementById('polygonjs-progress');
const barElement = document.getElementById('polygonjs-progress-bar-label');
export function onProgress(ratio: number) {
if (!(mainElement && barElement && container && poster)) {
console.log('progress bar elements missing');
return;
}
if (ratio < 1) {
mainElement.style.width = `${Math.round(ratio * 100)}%`;
barElement.innerText = `${Math.round(ratio * 100)}%`;
} else {
// when we reach 1, we can remove the progress bar and fade out the poster
if (container.parentElement) {
container.parentElement.removeChild(container);
}
if (poster) {
poster.classList.add('fade-out');
setTimeout(() => {
if (poster.parentElement) {
poster.parentElement.removeChild(poster);
}
}, 1200);
}
}
}