diff --git a/dist/css/ionic.css b/dist/css/ionic.css index 8f7254e573..def70023fb 100644 --- a/dist/css/ionic.css +++ b/dist/css/ionic.css @@ -5155,45 +5155,61 @@ a.button { bottom: 0; left: 0; } -.slide-left-right > .ng-enter, .slide-left-right.ng-enter, .slide-left-right > .ng-leave, .slide-left-right.ng-leave { - -webkit-transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; - -moz-transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; - transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; +.ng-animate .pane { + position: absolute; } + +/** + * Slide Left-Right + * -------------------------------------------------- + * NEW content slides IN from the RIGHT, OLD slides OUT to the LEFT + * Reverse: NEW content slides IN from the LEFT, OLD slides OUT to the RIGHT + */ +.slide-left-right > .ng-enter, .slide-left-right.ng-enter, +.slide-left-right > .ng-leave, .slide-left-right.ng-leave { + -webkit-transition: all ease-in-out 250ms; + -moz-transition: all ease-in-out 250ms; + transition: all ease-in-out 250ms; position: absolute; top: 0; right: 0; bottom: 0; left: 0; } .slide-left-right > .ng-enter, .slide-left-right.ng-enter { + /* NEW content placed far RIGHT BEFORE it slides IN from the RIGHT */ -webkit-transform: translate3d(100%, 0, 0); -moz-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } .slide-left-right > .ng-enter.ng-enter-active, .slide-left-right.ng-enter.ng-enter-active { + /* NEW content ACTIVELY sliding IN from the RIGHT */ -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .slide-left-right > .ng-leave.ng-leave-active, .slide-left-right.ng-leave.ng-leave-active { + /* OLD content ACTIVELY sliding OUT to the LEFT */ -webkit-transform: translate3d(-100%, 0, 0); -moz-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .slide-left-right.reverse > .ng-enter, .slide-left-right.reverse.ng-enter, .slide-left-right.reverse > .ng-leave, .slide-left-right.reverse.ng-leave { - -webkit-transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; - -moz-transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; - transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; + -webkit-transition: all ease-in-out 250ms; + -moz-transition: all ease-in-out 250ms; + transition: all ease-in-out 250ms; position: absolute; top: 0; right: 0; bottom: 0; left: 0; } .slide-left-right.reverse > .ng-enter, .slide-left-right.reverse.ng-enter { + /* NEW content placed far LEFT BEFORE it slides IN from the LEFT */ -webkit-transform: translate3d(-100%, 0, 0); -moz-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .slide-left-right.reverse > .ng-enter.ng-enter-active, .slide-left-right.reverse.ng-enter.ng-enter-active { + /* NEW content ACTIVELY sliding IN from the LEFT */ -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .slide-left-right.reverse > .ng-leave.ng-leave-active, .slide-left-right.reverse.ng-leave.ng-leave-active { + /* OLD content ACTIVELY sliding OUT to the RIGHT */ -webkit-transform: translate3d(100%, 0, 0); -moz-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } @@ -5546,7 +5562,8 @@ a.button { /** * Some component specific animations */ -.nav-title-slide-ios7 > .ng-enter, .nav-title-slide-ios7.ng-enter, .nav-title-slide-ios7 > .ng-leave, .nav-title-slide-ios7.ng-leave { +.nav-title-slide-ios7 > .ng-enter, .nav-title-slide-ios7.ng-enter, +.nav-title-slide-ios7 > .ng-leave, .nav-title-slide-ios7.ng-leave { -webkit-transition: all 350ms; -moz-transition: all 350ms; transition: all 350ms; diff --git a/dist/js/ionic-angular.js b/dist/js/ionic-angular.js index 7ff7a7b137..75ece102a4 100644 --- a/dist/js/ionic-angular.js +++ b/dist/js/ionic-angular.js @@ -1416,9 +1416,11 @@ angular.module('ionic.ui.navRouter', ['ionic.service.gesture']) }], link: function($scope, $element, $attr) { + if(!$element.length) return; + $scope.animation = $attr.animation; - $element.addClass('noop-animation'); + $element[0].classList.add('noop-animation'); var isFirst = true; // Store whether we did an animation yet, to know if @@ -1430,15 +1432,15 @@ angular.module('ionic.ui.navRouter', ['ionic.service.gesture']) }; var reverseTransition = function() { - $element.removeClass('noop-animation'); - $element.addClass($scope.animation); - $element.addClass('reverse'); + $element[0].classList.remove('noop-animation'); + $element[0].classList.add($scope.animation); + $element[0].classList.add('reverse'); }; var forwardTransition = function() { - $element.removeClass('noop-animation'); - $element.removeClass('reverse'); - $element.addClass($scope.animation); + $element[0].classList.remove('noop-animation'); + $element[0].classList.remove('reverse'); + $element[0].classList.add($scope.animation); }; $scope.$on('$routeChangeSuccess', function(e, a) { diff --git a/examples/starters/list/index.html b/examples/starters/list/index.html index 82c992af85..07d5ea30bb 100644 --- a/examples/starters/list/index.html +++ b/examples/starters/list/index.html @@ -5,8 +5,13 @@