diff --git a/CHANGELOG.md b/CHANGELOG.md index adf794d059..833746019f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Created ionic.Platform.fullscreen() and .showStatusBar() - Update to Angular v1.2.8 - Update AngularUI Router to v0.2.8 + - Disable pointer-events during transitions ## 0.9.20 "Alpha Lynx" (2014-01-14) diff --git a/js/ext/angular/src/service/ionicView.js b/js/ext/angular/src/service/ionicView.js index 4a0ce461ba..ac7e0fb9bb 100644 --- a/js/ext/angular/src/service/ionicView.js +++ b/js/ext/angular/src/service/ionicView.js @@ -345,9 +345,15 @@ angular.module('ionic.service.view', ['ui.router']) this.setAnimationClass(opts.parentElement, animationClass, opts.navDirection); opts.enteringElement.addClass('ng-enter'); + // disable any pointer-events from being able to fire + document.body.classList.add('disable-pointer-events'); + // start the animations if(opts.leavingElement) { - $animate.leave(opts.leavingElement); + $animate.leave(opts.leavingElement, function() { + // re-enable pointer-events + document.body.classList.remove('disable-pointer-events'); + }); } $animate.enter(opts.enteringElement, opts.parentElement); diff --git a/scss/_util.scss b/scss/_util.scss index 2c45e5d08c..e59de78cde 100644 --- a/scss/_util.scss +++ b/scss/_util.scss @@ -19,6 +19,10 @@ display: inline-block; } +.disable-pointer-events { + pointer-events: none; +} + .block { display: block; clear: both;