From 4e2b77092b1c2b0b04810f86340cb2372101b31b Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Sat, 30 May 2015 11:02:31 -0500 Subject: [PATCH] Updated menu --- ionic/components/action-menu/action-menu.js | 48 ++++++++++++++++--- ionic/components/action-menu/action-menu.scss | 4 +- 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/ionic/components/action-menu/action-menu.js b/ionic/components/action-menu/action-menu.js index f70d97bef2..b193665892 100644 --- a/ionic/components/action-menu/action-menu.js +++ b/ionic/components/action-menu/action-menu.js @@ -16,6 +16,30 @@ import * as util from 'ionic/util' import {Animation} from 'ionic/animations/animation'; +class ActionMenuSlideIn extends Animation { + constructor(element) { + super(element); + this + .easing('cubic-bezier(.36, .66, .04, 1)') + .duration(500) + .from('translateY', '100%') + .to('translateY', '0%'); + } +} +Animation.register('action-menu-slide-in', ActionMenuSlideIn); + +class ActionMenuSlideOut extends Animation { + constructor(element) { + super(element); + this + .easing('cubic-bezier(.36, .66, .04, 1)') + .duration(500) + .from('translateY', '0%') + .to('translateY', '100%'); + } +} +Animation.register('action-menu-slide-out', ActionMenuSlideIn); + @Component({ selector: 'ion-action-menu' }) @@ -23,7 +47,7 @@ import {Animation} from 'ionic/animations/animation'; template: `
-
+
{{titleText}}
@@ -48,15 +72,25 @@ export class ActionMenu { } close() { - var backdrop = this.domElement.children[0].classList.remove('active'); - var slideOut = Animation.create(this.wrapperEl, 'slide-out'); - return slideOut.play(); + raf(() => { + var backdrop = this.domElement.children[0].classList.remove('active'); + var slideOut = Animation.create(this.wrapperEl, 'action-menu-slide-out'); + + return slideOut.play().then(() => { + this.wrapperEl.classList.remove('action-menu-up'); + }) + }); } open() { - var backdrop = this.domElement.children[0].classList.add('active'); - var slideIn = Animation.create(this.wrapperEl, 'slide-in'); - return slideIn.play(); + raf(() => { + var backdrop = this.domElement.children[0].classList.add('active'); + var slideIn = Animation.create(this.wrapperEl, 'action-menu-slide-in'); + + return slideIn.play().then(() => { + this.wrapperEl.classList.add('action-menu-up'); + }) + }); } setOptions(opts) { diff --git a/ionic/components/action-menu/action-menu.scss b/ionic/components/action-menu/action-menu.scss index 9a3e3b24b2..2c2e01f177 100644 --- a/ionic/components/action-menu/action-menu.scss +++ b/ionic/components/action-menu/action-menu.scss @@ -51,7 +51,7 @@ $sheet-options-border-color: #d1d3d6 !default; } .action-menu-wrapper { - //transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); //transition: all cubic-bezier(.36, .66, .04, 1) 500ms; position: absolute; @@ -67,7 +67,7 @@ $sheet-options-border-color: #d1d3d6 !default; transform: translate3d(0, 0, 0); } -.action-menu { +.action-menu-container { margin-left: $sheet-margin; margin-right: $sheet-margin; width: auto;