Я пытаюсь анимировать контекстное меню в собственном скрипте, так что при первом нажатии дочерние параметры выпрыгивают, а затем, когда вы нажимаете второй раз, они возвращаются. Надеюсь, мой код ниже достаточно понятен, если кнопка не была нажата, а затем сделать анимацию, если она была нажата, а затем сделать наоборот.Анимация выходит за пределы их запрограммированного назначения?
exports.fabTap = function (args) {
var google = page.getViewById("google");
var facebook = page.getViewById("facebook");
var amazon = page.getViewById("amazon");
if (clicked == false) {
google.style.visibility = "visible";
facebook.style.visibility = "visible";
amazon.style.visibility = "visible";
google.animate({
translate: { x: -55, y: -66 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
facebook.animate({
translate: { x: 0, y: -75 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
amazon.animate({
translate: { x: 55, y: -66 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
} else {
google.animate({
translate: { x: 55, y: 66 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
facebook.animate({
translate: { x: 0, y: 75 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
amazon.animate({
translate: { x: -55, y: 66 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
}
clicked = !clicked;
}
Однако, как вы можете видеть из этой анимации, кнопки, похоже, выходят за пределы (ниже) их исходного положения. Любые идеи, почему это происходит?
Update:
Спасибо за указание на то, что все анимации относительно исходной базы. Однако, если я изменю все мои возвратные переводы на translate: { x: 0, y: 0 }
, то видимость меняется, кажется, до перевода? Любая идея, как обойти это?
Отлично, спасибо. Я предположил, что перевод переместил базу. Однако, странно, что новый код остановил анимацию возврата? Я предполагаю, потому что изменение видимости происходит до перевода? Любые идеи, как изменить это? –