double endY = node.getScene().getHeight() - node.localToScene(0, 0).getY();
rotate = new Rotate(0,0,0);
timeline = TimelineBuilder.create()
.keyFrames(
new KeyFrame(Duration.millis(0),
new KeyValue(rotate.angleProperty(), 0, Interpolator.EASE_BOTH)
),
new KeyFrame(Duration.millis(200),
new KeyValue(rotate.angleProperty(), 80, Interpolator.EASE_BOTH)
),
new KeyFrame(Duration.millis(400),
new KeyValue(rotate.angleProperty(), 60, Interpolator.EASE_BOTH)
),
new KeyFrame(Duration.millis(600),
new KeyValue(rotate.angleProperty(), 80, Interpolator.EASE_BOTH)
),
new KeyFrame(Duration.millis(800),
new KeyValue(node.opacityProperty(), 1, Interpolator.EASE_BOTH),
new KeyValue(node.translateYProperty(), 0, Interpolator.EASE_BOTH),
new KeyValue(rotate.angleProperty(), 60, Interpolator.EASE_BOTH)
),
new KeyFrame(Duration.millis(1000),
new KeyValue(node.opacityProperty(), 0, Interpolator.EASE_BOTH),
new KeyValue(node.translateYProperty(), endY, Interpolator.EASE_BOTH),
new KeyValue(rotate.angleProperty(), 60, Interpolator.EASE_BOTH)
)
)
.build();
node.getTransforms().add(rotate);
}