Wenn ich darauf klicke, möchte ich eine Schaltfläche, um drei untergeordnete Optionen zu erzeugen, die dann, wenn sie erneut angetippt werden, zurückziehen und dann verschwinden, wenn sie sich hinter der übergeordneten Schaltfläche befinden. Ich hoffe, das ist klar aus dem Code (beachten Sie, dass dies eine nativescript Anwendung ist, daher die etwas seltsame CSS-Optionen).JavaScript-Animationen werden nicht in Reihenfolge ausgeführt?
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: 0, y: 0 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
facebook.animate({
translate: { x: 0, y: 0 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
amazon.animate({
translate: { x: 0, y: 0 },
duration: 500,
curve: enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1)
});
google.style.visibility = "collapse";
facebook.style.visibility = "collapse";
amazon.style.visibility = "collapse";
}
clicked = !clicked;
}
Doch wie Sie von der gif, auf der Rückfahrt sehen können, verschwinden die Tasten kurz vor der Rückkehr. Was kann ich tun, um sicherzustellen, dass dies der Reihe nach geschieht?
Warum müssen Sie 'google.style.visibility' einstellen (ich sehe nicht, dass Sie es auf die gleiche Weise einstellen, wenn Sie sie erscheinen lassen)? Hast du versucht, diese Zeilen zu entfernen? –