ネイティブスクリプトでコンテキストメニューをアニメーション化しようとしています。そのため、最初のタップで子オプションが飛び出し、2回目にクリックすると戻ります。私は、ボタンがクリックされていない場合は、私のコードは、かなり自己説明的であることを願って、それがクリックされている場合は、その後、アニメーションを行い、その後、逆を行います。アニメーションはプログラムされた目的地を超えていますか?
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;
}
ただし、このアニメーションからわかるように、ボタンは元の位置を超えて(下に)表示されます。何が起こっているのか?
アップデート:すべてのアニメーションは、元のベースに対して相対的であることを指摘し
感謝。しかし、私が戻ったすべての翻訳をtranslate: { x: 0, y: 0 }
に変更すると、翻訳の前に視界の変化が起こっているように見えますか?どのようにそれを回避するための任意のアイデア?
素晴らしい、ありがとう。私は翻訳がベースを動かしたと仮定しました。しかし、奇妙なことに、新しいコードがリターンアニメーションの表示を停止したことは間違いありませんか?視認性の変更は翻訳の前に起こるので、私はそれを仮定しますか?任意のアイデアをどのように変更するには? –