summaryrefslogtreecommitdiff
path: root/www/lib/ion-image-lazy-load/ionic-image-lazy-load.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/lib/ion-image-lazy-load/ionic-image-lazy-load.js')
-rw-r--r--www/lib/ion-image-lazy-load/ionic-image-lazy-load.js124
1 files changed, 0 insertions, 124 deletions
diff --git a/www/lib/ion-image-lazy-load/ionic-image-lazy-load.js b/www/lib/ion-image-lazy-load/ionic-image-lazy-load.js
deleted file mode 100644
index da9ff94d..00000000
--- a/www/lib/ion-image-lazy-load/ionic-image-lazy-load.js
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * Created by PAVEI on 30/09/2014.
- * Updated by Ross Martin on 12/05/2014
- * Updated by Davide Pastore on 04/14/2015
- * Updated by Michel Vidailhet on 05/12/2015
- */
-
-angular.module('ionicLazyLoad', []);
-
-angular.module('ionicLazyLoad')
-
-.directive('lazyScroll', ['$rootScope', '$timeout',
- function($rootScope, $timeout) {
- return {
- restrict: 'A',
- link: function ($scope, $element) {
-
- var scrollTimeoutId = 0;
-
- $scope.invoke = function () {
- $rootScope.$broadcast('lazyScrollEvent');
- };
-
- $element.bind('scroll', function () {
-
- $timeout.cancel(scrollTimeoutId);
-
- // wait and then invoke listeners (simulates stop event)
- scrollTimeoutId = $timeout($scope.invoke, 0);
-
- });
-
-
- }
- };
-}])
-
-.directive('imageLazySrc', ['$document', '$timeout', '$ionicScrollDelegate', '$compile',
- function ($document, $timeout, $ionicScrollDelegate, $compile) {
- return {
- restrict: 'A',
- scope: {
- lazyScrollResize: "@lazyScrollResize",
- imageLazyBackgroundImage: "@imageLazyBackgroundImage"
- },
- link: function ($scope, $element, $attributes) {
- if (!$attributes.imageLazyDistanceFromBottomToLoad) {
- $attributes.imageLazyDistanceFromBottomToLoad = 0;
- }
- if (!$attributes.imageLazyDistanceFromRightToLoad) {
- $attributes.imageLazyDistanceFromRightToLoad = 0;
- }
-
- if ($attributes.imageLazyLoader) {
- var loader = $compile('<div class="image-loader-container"><ion-spinner class="image-loader" icon="' + $attributes.imageLazyLoader + '"></ion-spinner></div>')($scope);
- $element.after(loader);
- }
-
- var deregistration = $scope.$on('lazyScrollEvent', function () {
- //console.log('scroll');
- if (isInView()) {
- loadImage();
- deregistration();
- }
- }
- );
-
- function loadImage() {
- //Bind "load" event
- $element.bind("load", function (e) {
- if ($attributes.imageLazyLoader) {
- loader.remove();
- }
- if ($scope.lazyScrollResize == "true") {
- //Call the resize to recalculate the size of the screen
- $ionicScrollDelegate.resize();
- }
- });
-
- if ($scope.imageLazyBackgroundImage == "true") {
- var bgImg = new Image();
- bgImg.onload = function () {
- if ($attributes.imageLazyLoader) {
- loader.remove();
- }
- $element[0].style.backgroundImage = 'url(' + $attributes.imageLazySrc + ')'; // set style attribute on element (it will load image)
- if ($scope.lazyScrollResize == "true") {
- //Call the resize to recalculate the size of the screen
- $ionicScrollDelegate.resize();
- }
- };
- bgImg.src = $attributes.imageLazySrc;
- } else {
- $element[0].src = $attributes.imageLazySrc; // set src attribute on element (it will load image)
- }
- }
-
- function isInView() {
- var clientHeight = $document[0].documentElement.clientHeight;
- var clientWidth = $document[0].documentElement.clientWidth;
- var imageRect = $element[0].getBoundingClientRect();
- return (imageRect.top >= 0 && imageRect.top <= clientHeight + parseInt($attributes.imageLazyDistanceFromBottomToLoad))
- && (imageRect.left >= 0 && imageRect.left <= clientWidth + parseInt($attributes.imageLazyDistanceFromRightToLoad));
- }
-
- // bind listener
- // listenerRemover = scrollAndResizeListener.bindListener(isInView);
-
- // unbind event listeners if element was destroyed
- // it happens when you change view, etc
- $element.on('$destroy', function () {
- deregistration();
- });
-
- // explicitly call scroll listener (because, some images are in viewport already and we haven't scrolled yet)
- $timeout(function () {
- if (isInView()) {
- loadImage();
- deregistration();
- }
- }, 500);
- }
- };
- }]);