我在 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 属性一起工作?