fix(menu): construct menu on first drag

Closes #580
This commit is contained in:
Adam Bradley
2015-11-19 09:10:39 -06:00
parent d23b59a085
commit 0a1f63d3fb
3 changed files with 18 additions and 15 deletions

View File

@ -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';

View File

@ -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);
}
}

View File

@ -147,15 +147,20 @@ export class Menu extends Ion {
if (!type) {
type = this.config.get('menuType');
}
this._type = new menuTypes[type](this);
this.type = type;
}
_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;
}
/**
* Sets the state of the Menu to open or not.
@ -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);
});
}