angular-lazy-img
Lightweight lazy load images plugin. Only 1kb after gziping. Pure JavaScript, only Angular as dependency.
Installation
-
bower install --save angular-lazy-img
-
Include angular-lazy-img
in your HTML.
<script src="<your-bower-components>/angular-lazy-img/release/angular-lazy-img.js"></script>
-
Inject the angular-lazy-img
module in your application.
angular.module('your.module', [
'angularLazyImg'
]);
Usage
Just add lazy-img attribute with source to file that you want to lazy load
<img lazy-img='photo.jpeg' />
If you want show spinner put it in src attribute
<img src='spinner.gif' lazy-img='photo.jpeg' />
You want to lazy load background image? No problem, add directive to anything you like and it will handle the rest.
<div lazy-img='photo.jpeg'></div>
If you need to run the image check manually (for example when clicking on tabs that filter your image result),
you can trigger it that way:
$rootScope.$emit('lazyImg:refresh');
On success and error lazyImg will trigger events on $rootScope - lazyImg:success and lazyImg:error, passing as first param image
Configuration
Inside your config require 'lazyImgConfigProvider' and set custom options.
angular.module('your.module', [
'angularLazyImg'
]).config(['lazyImgConfigProvider', function(lazyImgConfigProvider){
var scrollable = document.querySelector('#scrollable');
lazyImgConfigProvider.setOptions({
offset: 100,
errorClass: 'error',
successClass: 'success',
onError: function(image){},
onSuccess: function(image){},
container: angular.element(scrollable)
});
}])
Use a scrollable container in a dynamic page
Just add lazyImgContainer
attribute to your scrollable container to be considered when you scroll him.
Author
Copyright 2014, Paweł Wszoła (wszola.p@gmail.com)