mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-19 03:32:21 +08:00
@ -1,5 +1,5 @@
|
|||||||
import {Menu} from './menu';
|
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';
|
import * as util from 'ionic/util';
|
||||||
|
|
||||||
|
@ -116,16 +116,14 @@ class MenuPushType extends MenuType {
|
|||||||
let easing = 'ease';
|
let easing = 'ease';
|
||||||
let duration = 250;
|
let duration = 250;
|
||||||
|
|
||||||
let contentClosedX, contentOpenedX, menuClosedX, menuOpenedX;
|
let contentOpenedX, menuClosedX, menuOpenedX;
|
||||||
|
|
||||||
if (menu.side == 'right') {
|
if (menu.side == 'right') {
|
||||||
contentOpenedX = -menu.width() + 'px';
|
contentOpenedX = -menu.width() + 'px';
|
||||||
contentClosedX = '0px';
|
|
||||||
menuOpenedX = (menu.platform.width() - menu.width()) + 'px';
|
menuOpenedX = (menu.platform.width() - menu.width()) + 'px';
|
||||||
menuClosedX = menu.platform.width() + 'px';
|
menuClosedX = menu.platform.width() + 'px';
|
||||||
} else {
|
} else {
|
||||||
contentOpenedX = menu.width() + 'px';
|
contentOpenedX = menu.width() + 'px';
|
||||||
contentClosedX = '0px';
|
|
||||||
menuOpenedX = '0px';
|
menuOpenedX = '0px';
|
||||||
menuClosedX = -menu.width() + 'px';
|
menuClosedX = -menu.width() + 'px';
|
||||||
}
|
}
|
||||||
@ -139,7 +137,7 @@ class MenuPushType extends MenuType {
|
|||||||
this.open.add(menuOpen);
|
this.open.add(menuOpen);
|
||||||
|
|
||||||
let contentOpen = new Animation(menu.getContentElement());
|
let contentOpen = new Animation(menu.getContentElement());
|
||||||
contentOpen.fromTo(TRANSLATE_X, contentClosedX, contentOpenedX);
|
contentOpen.fromTo(TRANSLATE_X, '0px', contentOpenedX);
|
||||||
this.open.add(contentOpen);
|
this.open.add(contentOpen);
|
||||||
|
|
||||||
let menuClose = new Animation(menu.getMenuElement());
|
let menuClose = new Animation(menu.getMenuElement());
|
||||||
@ -147,7 +145,7 @@ class MenuPushType extends MenuType {
|
|||||||
this.close.add(menuClose);
|
this.close.add(menuClose);
|
||||||
|
|
||||||
let contentClose = new Animation(menu.getContentElement());
|
let contentClose = new Animation(menu.getContentElement());
|
||||||
contentClose.fromTo(TRANSLATE_X, contentOpenedX, contentClosedX);
|
contentClose.fromTo(TRANSLATE_X, contentOpenedX, '0px');
|
||||||
this.close.add(contentClose);
|
this.close.add(contentClose);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,15 +147,20 @@ export class Menu extends Ion {
|
|||||||
if (!type) {
|
if (!type) {
|
||||||
type = this.config.get('menuType');
|
type = this.config.get('menuType');
|
||||||
}
|
}
|
||||||
|
|
||||||
this._type = new menuTypes[type](this);
|
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
_getType() {
|
||||||
|
if (!this._type) {
|
||||||
|
this._type = new menuTypes[this.type](this);
|
||||||
|
|
||||||
if (this.config.get('animate') === false) {
|
if (this.config.get('animate') === false) {
|
||||||
this._type.open.duration(33);
|
this._type.open.duration(33);
|
||||||
this._type.close.duration(33);
|
this._type.close.duration(33);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return this._type;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the state of the Menu to open or not.
|
* Sets the state of the Menu to open or not.
|
||||||
@ -171,7 +176,7 @@ export class Menu extends Ion {
|
|||||||
|
|
||||||
this._before();
|
this._before();
|
||||||
|
|
||||||
return this._type.setOpen(shouldOpen).then(() => {
|
return this._getType().setOpen(shouldOpen).then(() => {
|
||||||
this._after(shouldOpen);
|
this._after(shouldOpen);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -185,7 +190,7 @@ export class Menu extends Ion {
|
|||||||
|
|
||||||
this._before();
|
this._before();
|
||||||
|
|
||||||
this._type.setProgressStart(this.isOpen);
|
this._getType().setProgressStart(this.isOpen);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -196,7 +201,7 @@ export class Menu extends Ion {
|
|||||||
if (this.isEnabled) {
|
if (this.isEnabled) {
|
||||||
this._prevent();
|
this._prevent();
|
||||||
this.app.setTransitioning(true);
|
this.app.setTransitioning(true);
|
||||||
this._type.setProgess(value);
|
this._getType().setProgess(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,7 +213,7 @@ export class Menu extends Ion {
|
|||||||
if (this.isEnabled) {
|
if (this.isEnabled) {
|
||||||
this._prevent();
|
this._prevent();
|
||||||
this.app.setTransitioning(true);
|
this.app.setTransitioning(true);
|
||||||
this._type.setProgressEnd(shouldComplete).then(isOpen => {
|
this._getType().setProgressEnd(shouldComplete).then(isOpen => {
|
||||||
this._after(isOpen);
|
this._after(isOpen);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user