ボタンを使用してJavaFXでカスタム複合UIコントロールを構築しています。コントロールのどこかにホバリングすると、不透明度が0から0.1にフェードインします。ボタン自体の上にカーソルを置くと、不透明度が 1.0 に変更されます。これは、CSS を介して簡単に実現できます。
ここで FadeTransition:
// unfortunately, animations cannot be defined in CSS yet
FadeTransition fadeInButton =
new FadeTransition(Duration.millis(300), settingsButton);
fadeInButton.setFromValue(0);
fadeInButton.setToValue(0.1);
ボタンの CSS は次のとおりです。
.settings-button {
-fx-background-image: url("settings_32_inactive.png");
-fx-background-repeat: no-repeat;
-fx-background-position: center center;
-fx-opacity: 0; /* button shall be initially invisible, will be faded in */
}
.settings-button:hover {
-fx-background-image: url("settings_32.png");
-fx-opacity: 1.0; /* why is this ignored if used together with animations? */
}
アニメーションと CSS の両方のプロパティは、別々にうまく機能します。残念ながら、組み合わせて、アニメーションは CSS ファイルの -fx-opacity プロパティをオーバーライドするようです。アニメーションと CSS プロパティの両方を連携させる方法はありますか?