let progressElem, statusElem, supportsProgress, loadedImageCount, imageCount; let container = document.querySelector('#image-container'); statusElem = document.querySelector('#status'); progressElem = document.querySelector('progress'); supportsProgress = progressElem && // IE does not support progress progressElem.toString().indexOf('Unknown') === -1; document.querySelector('#add').onclick = function() { // add new images let fragment = getItemsFragment(); container.insertBefore( fragment, container.firstChild ); // use ImagesLoaded let imgLoad = imagesLoaded( container ); imgLoad.on( 'progress', onProgress ); imgLoad.on( 'always', onAlways ); // reset progress counter imageCount = imgLoad.images.length; resetProgress(); updateProgress( 0 ); }; // reset container document.querySelector('#reset').onclick = function() { empty( container ); }; // ----- set text helper ----- // let docElem = document.documentElement; let textSetter = docElem.textContent !== undefined ? 'textContent' : 'innerText'; function setText( elem, value ) { elem[ textSetter ] = value; } function empty( elem ) { while ( elem.firstChild ) { elem.removeChild( elem.firstChild ); } } // ----- ----- // // return doc fragment with function getItemsFragment() { let fragment = document.createDocumentFragment(); for ( let i = 0; i < 7; i++ ) { let item = getImageItem(); fragment.appendChild( item ); } return fragment; } // return an