Personal portfolio website for Regina Carvalho. Built with Famous.js library.

slideshow.js 2.6KB

    'use strict'; /** * @ngdoc function * @name domainManagerApp.controller:AboutCtrl * @description * # AboutCtrl * Controller of the domainManagerApp */ angular.module('goApp.slideshow', ['ngFx', 'ngAnimate', 'goApp.data']) .controller('SlideshowController',['$scope', '$rootScope', '$famous', '$timeline', '$location', '$route', '$timeout', 'Data', function ($scope, $rootScope, $famous, $timeline, $location, $route, $timeout, Data) { console.log('> Loading Slideshow') // Get Page Data var link = $location.url() $scope.pageData = Data.getPageData(link); $rootScope.$on('data:loaded', function(data) { if(!$scope.$$phase) { $scope.$apply(function(){ $scope.pageData = Data.getPageData(link); $scope.showSlider(); }); } }); // FadeIn $timeout(function(){ $scope.showView = true; },100); // FadeOut $scope.fadeOut = function() { $scope.showView = false; $timeout(function(){ $scope.showView = false; $location.path("/"); },800); } $scope.index = 0; $scope.images = []; $scope.showSlider = function() { var show = false; if($scope.pageData.slides != undefined) { if($scope.pageData.slides.length > 0) { show = true; for (var i = 0; i < $scope.pageData.slides.length; i++) { $scope.images.push($scope.pageData.slides[i].url); } } else { show = false; } if(!$scope.$$phase) { $scope.$apply(function(){ $scope.slider = show; }); } else { $scope.slider = show; } $timeout(function(){ //$scope.resizeImages(); },250); } } // callbacks for change in slides $scope.updateTsPrevious = function() { $scope.tsPrevious = +new Date(); //$scope.resizeImages(); }; $scope.updateTsNext = function() { $scope.tsNext = +new Date(); //$scope.resizeImages(); }; $scope.resizeImages = function() { var allImages = []; var clientHeight = document.getElementById('slider').clientHeight; $('img').each(function(idx, img) { allImages.push(img) }); console.log('> Starting image resize process (resizing to ' + clientHeight + 'px)') for(var i = 0, max = allImages.length; i < max; i++){ console.log('> resizing image'); allImages[i].style.height = (clientHeight-25) + 'px'; allImages[i].style.maxHeight = 'none'; allImages[i].style.width = 'auto'; } } $scope.showSlider(); }]);