From 664fe55ff8a96d777be056e64fae65c74b9d1516 Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Tue, 12 Nov 2013 20:16:33 -0600 Subject: [PATCH] Fixed pulsating PTR icon --- dist/css/ionic.css | 9 ++++++--- dist/js/ionic-angular.js | 10 +++++++++- js/ext/angular/src/directive/ionicContent.js | 10 +++++++++- js/ext/angular/test/list.html | 2 +- scss/_scaffolding.scss | 8 ++++++-- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/dist/css/ionic.css b/dist/css/ionic.css index e531d4e79c..fad7a9564a 100644 --- a/dist/css/ionic.css +++ b/dist/css/ionic.css @@ -2297,13 +2297,16 @@ body, .ionic-body { left: 50%; margin-left: -5px; bottom: 25px; - -webkit-transform: scale(0.2); } + -webkit-transform: scale(0.2); + -webkit-transition: -webkit-transform 0.1s linear; + -webkit-animation-play-state: paused; + -webkit-animation: refresher-pulsate 1.5s linear; + -webkit-animation-iteration-count: infinite; } .scroll-refreshing { -webkit-transition: height 0.1s ease-in-out; } .scroll-refreshing .ionic-refresher { - -webkit-animation: refresher-pulsate 1.5s linear; - -webkit-animation-iteration-count: infinite; } + -webkit-animation-play-state: running; } @-webkit-keyframes refresher-pulsate { 0% { diff --git a/dist/js/ionic-angular.js b/dist/js/ionic-angular.js index 5d00cb47a2..0d30899581 100644 --- a/dist/js/ionic-angular.js +++ b/dist/js/ionic-angular.js @@ -557,15 +557,23 @@ angular.module('ionic.ui.content', []) var icon = $element[0].querySelector('.ionic-refresher'); // Scale up the refreshing icon + var didHold = false; var onRefreshOpening = ionic.throttle(function(e, amt) { - icon.style[ionic.CSS.TRANSFORM] = 'scale(' + Math.min((0.2 + amt), 1) + ')'; + if(!didHold) { + icon.style[ionic.CSS.TRANSFORM] = 'scale(' + Math.min((0.2 + amt), 1) + ')'; + } + if(amt >= 1) { + didHold = true; + } }, 100); $scope.$on('scroll.onRefreshing', function(e) { + console.log('ON REFReSHING'); icon.style[ionic.CSS.TRANSFORM] = 'scale(2)'; }); $scope.$on('scroll.onRefresh', function(e) { + console.log('ON REFReSH'); icon.style[ionic.CSS.TRANSFORM] = 'scale(1)'; }); $scope.$on('scroll.onRefreshOpening', onRefreshOpening); diff --git a/js/ext/angular/src/directive/ionicContent.js b/js/ext/angular/src/directive/ionicContent.js index 26d2405163..51c4e465c2 100644 --- a/js/ext/angular/src/directive/ionicContent.js +++ b/js/ext/angular/src/directive/ionicContent.js @@ -83,15 +83,23 @@ angular.module('ionic.ui.content', []) var icon = $element[0].querySelector('.ionic-refresher'); // Scale up the refreshing icon + var didHold = false; var onRefreshOpening = ionic.throttle(function(e, amt) { - icon.style[ionic.CSS.TRANSFORM] = 'scale(' + Math.min((0.2 + amt), 1) + ')'; + if(!didHold) { + icon.style[ionic.CSS.TRANSFORM] = 'scale(' + Math.min((0.2 + amt), 1) + ')'; + } + if(amt >= 1) { + didHold = true; + } }, 100); $scope.$on('scroll.onRefreshing', function(e) { + console.log('ON REFReSHING'); icon.style[ionic.CSS.TRANSFORM] = 'scale(2)'; }); $scope.$on('scroll.onRefresh', function(e) { + console.log('ON REFReSH'); icon.style[ionic.CSS.TRANSFORM] = 'scale(1)'; }); $scope.$on('scroll.onRefreshOpening', onRefreshOpening); diff --git a/js/ext/angular/test/list.html b/js/ext/angular/test/list.html index a7797386c6..915f46cf13 100644 --- a/js/ext/angular/test/list.html +++ b/js/ext/angular/test/list.html @@ -119,7 +119,7 @@ }; $scope.items = []; - for(var i = 0; i < 5; i++) { + for(var i = 0; i < 20; i++) { $scope.items.push({ text: 'Item ' + i, canDelete: true, diff --git a/scss/_scaffolding.scss b/scss/_scaffolding.scss index 4cb9991948..ab928ed255 100644 --- a/scss/_scaffolding.scss +++ b/scss/_scaffolding.scss @@ -139,13 +139,17 @@ body, .ionic-body { margin-left: -5px; bottom: 25px; -webkit-transform: scale(0.2); + -webkit-transition: -webkit-transform 0.1s linear; + -webkit-animation-play-state: paused; + + -webkit-animation: refresher-pulsate 1.5s linear; + -webkit-animation-iteration-count: infinite; } .scroll-refreshing { -webkit-transition: height 0.1s ease-in-out; .ionic-refresher { - -webkit-animation: refresher-pulsate 1.5s linear; - -webkit-animation-iteration-count: infinite; + -webkit-animation-play-state: running; } }