Skip to content
Permalink
Browse files

fix(animation): account for negative values on menu gesture (#19196)

  • Loading branch information...
liamdebeasi committed Aug 27, 2019
1 parent b1c8fa3 commit b3c7436e01268d31e92c80f8e85a552523d642f6
Showing with 9 additions and 1 deletion.
  1. +9 −1 core/src/components/menu/menu.tsx
@@ -415,6 +415,14 @@ export class Menu implements ComponentInterface, MenuI {
// Account for rounding errors in JS
let newStepValue = (shouldComplete) ? 0.001 : -0.001;

/**
* TODO: stepValue can sometimes return a negative
* value, but you can't have a negative time value
* for the cubic bezier curve (at least with web animations)
* Not sure if the negative step value is an error or not
*/
const adjustedStepValue = (stepValue <= 0) ? 0.01 : stepValue;

/**
* Animation will be reversed here, so need to
* reverse the easing curve as well
@@ -423,7 +431,7 @@ export class Menu implements ComponentInterface, MenuI {
* to the new easing curve, as `stepValue` is going to be given
* in terms of a linear curve.
*/
newStepValue += getTimeGivenProgression(new Point(0, 0), new Point(0.4, 0), new Point(0.6, 1), new Point(1, 1), stepValue);
newStepValue += getTimeGivenProgression(new Point(0, 0), new Point(0.4, 0), new Point(0.6, 1), new Point(1, 1), adjustedStepValue);

this.animation
.easing('cubic-bezier(0.4, 0.0, 0.6, 1)')

0 comments on commit b3c7436

Please sign in to comment.
You can’t perform that action at this time.