2017 © Pedro Peláez
 

component imagesloaded

JavaScript is all like _You images done yet or what?_

image

desandro/imagesloaded

JavaScript is all like _You images done yet or what?_

  • Tuesday, January 2, 2018
  • by desandro
  • Repository
  • 267 Watchers
  • 7407 Stars
  • 29,456 Installations
  • JavaScript
  • 3 Dependents
  • 0 Suggesters
  • 1119 Forks
  • 24 Open issues
  • 6 Versions
  • 16 % Grown

The README.md

imagesLoaded

JavaScript is all like "You images done yet or what?", (*1)

imagesloaded.desandro.com, (*2)

Detect when images have been loaded., (*3)

Install

Download

CDN

``` html , (*4)


### Package managers Install via npm: `npm install imagesloaded` Install via Yarn: `yarn add imagesloaded` ## jQuery You can use imagesLoaded as a jQuery Plugin. ``` js $('#container').imagesLoaded( function() { // images have loaded }); // options $('#container').imagesLoaded( { // options... }, function() { // images have loaded } );

.imagesLoaded() returns a jQuery Deferred object. This allows you to use .always(), .done(), .fail() and .progress()., (*5)

``` js $('#container').imagesLoaded() .always( function( instance ) { console.log('all images loaded'); }) .done( function( instance ) { console.log('all images successfully loaded'); }) .fail( function() { console.log('all images loaded, at least one is broken'); }) .progress( function( instance, image ) { var result = image.isLoaded ? 'loaded' : 'broken'; console.log( 'image is ' + result + ' for ' + image.img.src ); });, (*6)


## Vanilla JavaScript You can use imagesLoaded with vanilla JS. ``` js imagesLoaded( elem, callback ) // options imagesLoaded( elem, options, callback ) // you can use `new` if you like new imagesLoaded( elem, callback )
  • elem Element, NodeList, Array, or Selector String
  • options Object
  • callback Function - function triggered after all images have been loaded

Using a callback function is the same as binding it to the always event (see below)., (*7)

``` js // element imagesLoaded( document.querySelector('#container'), function( instance ) { console.log('all images are loaded'); }); // selector string imagesLoaded( '#container', function() {...}); // multiple elements var posts = document.querySelectorAll('.post'); imagesLoaded( posts, function() {...});, (*8)


Bind events with vanilla JS with .on(), .off(), and .once() methods. ``` js var imgLoad = imagesLoaded( elem ); function onAlways( instance ) { console.log('all images are loaded'); } // bind with .on() imgLoad.on( 'always', onAlways ); // unbind with .off() imgLoad.off( 'always', onAlways );

Background

Detect when background images have loaded, in addition to <img>s., (*9)

Set { background: true } to detect when the element's background image has loaded., (*10)

``` js // jQuery $('#container').imagesLoaded( { background: true }, function() { console.log('#container background image loaded'); });, (*11)

// vanilla JS imagesLoaded( '#container', { background: true }, function() { console.log('#container background image loaded'); });, (*12)


[See jQuery demo](https://codepen.io/desandro/pen/pjVMPB) or [vanilla JS demo](https://codepen.io/desandro/pen/avKooW) on CodePen. Set to a selector string like `{ background: '.item' }` to detect when the background images of child elements have loaded. ``` js // jQuery $('#container').imagesLoaded( { background: '.item' }, function() { console.log('all .item background images loaded'); }); // vanilla JS imagesLoaded( '#container', { background: '.item' }, function() { console.log('all .item background images loaded'); });

See jQuery demo or vanilla JS demo on CodePen., (*13)

Events

always

``` js // jQuery $('#container').imagesLoaded().always( function( instance ) { console.log('ALWAYS - all images have been loaded'); });, (*14)

// vanilla JS imgLoad.on( 'always', function( instance ) { console.log('ALWAYS - all images have been loaded'); });, (*15)


Triggered after all images have been either loaded or confirmed broken. + `instance` _imagesLoaded_ - the imagesLoaded instance ### done ``` js // jQuery $('#container').imagesLoaded().done( function( instance ) { console.log('DONE - all images have been successfully loaded'); }); // vanilla JS imgLoad.on( 'done', function( instance ) { console.log('DONE - all images have been successfully loaded'); });

Triggered after all images have successfully loaded without any broken images., (*16)

fail

``` js $('#container').imagesLoaded().fail( function( instance ) { console.log('FAIL - all images loaded, at least one is broken'); });, (*17)

// vanilla JS imgLoad.on( 'fail', function( instance ) { console.log('FAIL - all images loaded, at least one is broken'); });, (*18)


Triggered after all images have been loaded with at least one broken image. ### progress ``` js imgLoad.on( 'progress', function( instance, image ) { var result = image.isLoaded ? 'loaded' : 'broken'; console.log( 'image is ' + result + ' for ' + image.img.src ); });

Triggered after each image has been loaded., (*19)

  • instance imagesLoaded - the imagesLoaded instance
  • image LoadingImage - the LoadingImage instance of the loaded image

Properties

LoadingImage.img

Image - The img element, (*20)

LoadingImage.isLoaded

Boolean - true when the image has successfully loaded, (*21)

imagesLoaded.images

Array of LoadingImage instances for each image detected, (*22)

``` js var imgLoad = imagesLoaded('#container'); imgLoad.on( 'always', function() { console.log( imgLoad.images.length + ' images loaded' ); // detect which image is broken for ( var i = 0, len = imgLoad.images.length; i < len; i++ ) { var image = imgLoad.images[i]; var result = image.isLoaded ? 'loaded' : 'broken'; console.log( 'image is ' + result + ' for ' + image.img.src ); } });, (*23)


## Webpack Install imagesLoaded with npm. ``` bash npm install imagesloaded

You can then require('imagesloaded')., (*24)

``` js // main.js var imagesLoaded = require('imagesloaded');, (*25)

imagesLoaded( '#container', function() { // images have loaded });, (*26)


Use `.makeJQueryPlugin` to make `.imagesLoaded()` jQuery plugin. ``` js // main.js var imagesLoaded = require('imagesloaded'); var $ = require('jquery'); // provide jQuery argument imagesLoaded.makeJQueryPlugin( $ ); // now use .imagesLoaded() jQuery plugin $('#container').imagesLoaded( function() {...});

Run webpack., (*27)

``` bash webpack main.js bundle.js, (*28)


## Browserify imagesLoaded works with [Browserify](https://browserify.org/). ``` bash npm install imagesloaded --save

``` js var imagesLoaded = require('imagesloaded');, (*29)

imagesLoaded( elem, function() {...} );, (*30)


Use `.makeJQueryPlugin` to make to use `.imagesLoaded()` jQuery plugin. ``` js var $ = require('jquery'); var imagesLoaded = require('imagesloaded'); // provide jQuery argument imagesLoaded.makeJQueryPlugin( $ ); // now use .imagesLoaded() jQuery plugin $('#container').imagesLoaded( function() {...});

Browser support

  • Chrome 49+
  • Firefox 41+
  • Edge 14+
  • iOS Safari 8+

Use imagesLoaded v4 for Internet Explorer and other older browser support., (*31)

Development

Development uses Node.js v16 with npm v8, (*32)

bash nvm use, (*33)

MIT License

imagesLoaded is released under the MIT License. Have at it., (*34)

The Versions

02/01 2018

dev-master

9999999-dev http://imagesloaded.desandro.com

JavaScript is all like _You images done yet or what?_

  Sources   Download

MIT

library ui javascript dom images jquery-plugin loaded

02/01 2018

v4.1.4

4.1.4.0 http://imagesloaded.desandro.com

JavaScript is all like _You images done yet or what?_

  Sources   Download

MIT

library ui javascript dom images jquery-plugin loaded

12/06 2017

dev-site

dev-site http://imagesloaded.desandro.com

JavaScript is all like _You images done yet or what?_

  Sources   Download

MIT

library ui javascript dom images jquery-plugin loaded

12/06 2017

v4.1.3

4.1.3.0 http://imagesloaded.desandro.com

JavaScript is all like _You images done yet or what?_

  Sources   Download

MIT

library ui javascript dom images jquery-plugin loaded

04/05 2017

v4.1.2

4.1.2.0 http://imagesloaded.desandro.com

JavaScript is all like _You images done yet or what?_

  Sources   Download

MIT

library ui javascript dom images jquery-plugin loaded

28/08 2016

v4.1.1

4.1.1.0 http://imagesloaded.desandro.com

JavaScript is all like _You images done yet or what?_

  Sources   Download

MIT

library ui javascript dom images jquery-plugin loaded