diff --git a/ionic/components/menu/menu-gestures.ts b/ionic/components/menu/menu-gestures.ts index 43196f05e5..ea4f7bb0ff 100644 --- a/ionic/components/menu/menu-gestures.ts +++ b/ionic/components/menu/menu-gestures.ts @@ -1,5 +1,5 @@ import {Menu} from './menu'; -import {SlideEdgeGesture} from 'ionic/gestures/slide-edge-gesture'; +import {SlideEdgeGesture} from '../../gestures/slide-edge-gesture'; import * as util from 'ionic/util'; diff --git a/ionic/components/menu/menu-types.ts b/ionic/components/menu/menu-types.ts index e0b2f9de54..094cc6c8f9 100644 --- a/ionic/components/menu/menu-types.ts +++ b/ionic/components/menu/menu-types.ts @@ -116,16 +116,14 @@ class MenuPushType extends MenuType { let easing = 'ease'; let duration = 250; - let contentClosedX, contentOpenedX, menuClosedX, menuOpenedX; + let contentOpenedX, menuClosedX, menuOpenedX; if (menu.side == 'right') { contentOpenedX = -menu.width() + 'px'; - contentClosedX = '0px'; menuOpenedX = (menu.platform.width() - menu.width()) + 'px'; menuClosedX = menu.platform.width() + 'px'; } else { contentOpenedX = menu.width() + 'px'; - contentClosedX = '0px'; menuOpenedX = '0px'; menuClosedX = -menu.width() + 'px'; } @@ -139,7 +137,7 @@ class MenuPushType extends MenuType { this.open.add(menuOpen); let contentOpen = new Animation(menu.getContentElement()); - contentOpen.fromTo(TRANSLATE_X, contentClosedX, contentOpenedX); + contentOpen.fromTo(TRANSLATE_X, '0px', contentOpenedX); this.open.add(contentOpen); let menuClose = new Animation(menu.getMenuElement()); @@ -147,7 +145,7 @@ class MenuPushType extends MenuType { this.close.add(menuClose); let contentClose = new Animation(menu.getContentElement()); - contentClose.fromTo(TRANSLATE_X, contentOpenedX, contentClosedX); + contentClose.fromTo(TRANSLATE_X, contentOpenedX, '0px'); this.close.add(contentClose); } } diff --git a/ionic/components/menu/menu.ts b/ionic/components/menu/menu.ts index 6080316cbc..9a8d7cb034 100644 --- a/ionic/components/menu/menu.ts +++ b/ionic/components/menu/menu.ts @@ -147,14 +147,19 @@ export class Menu extends Ion { if (!type) { type = this.config.get('menuType'); } - - this._type = new menuTypes[type](this); this.type = type; + } - if (this.config.get('animate') === false) { - this._type.open.duration(33); - this._type.close.duration(33); + _getType() { + if (!this._type) { + this._type = new menuTypes[this.type](this); + + if (this.config.get('animate') === false) { + this._type.open.duration(33); + this._type.close.duration(33); + } } + return this._type; } /** @@ -171,7 +176,7 @@ export class Menu extends Ion { this._before(); - return this._type.setOpen(shouldOpen).then(() => { + return this._getType().setOpen(shouldOpen).then(() => { this._after(shouldOpen); }); } @@ -185,7 +190,7 @@ export class Menu extends Ion { this._before(); - this._type.setProgressStart(this.isOpen); + this._getType().setProgressStart(this.isOpen); } /** @@ -196,7 +201,7 @@ export class Menu extends Ion { if (this.isEnabled) { this._prevent(); this.app.setTransitioning(true); - this._type.setProgess(value); + this._getType().setProgess(value); } } @@ -208,7 +213,7 @@ export class Menu extends Ion { if (this.isEnabled) { this._prevent(); this.app.setTransitioning(true); - this._type.setProgressEnd(shouldComplete).then(isOpen => { + this._getType().setProgressEnd(shouldComplete).then(isOpen => { this._after(isOpen); }); }