JavaFX CSS : Apply hover effect to Child nodes when Parent node is hovered on

标签 java javafx javafx-8 javafx-2 javafx-css

当父节点悬停在其上时,是否可以对节点的子节点应用悬停效果,而无需将鼠标悬停在每个子节点本身上才能发生悬停效果?

例如,假设我有以下节点:

  • HBox --> #parent
    • 标签 --> #label
    • 按钮 --> #button

我希望能够在 Hbox 悬停时触发按钮和标签的悬停伪类。

最佳答案

在 JavaFX 2 中无法执行此操作(使用公共(public) API),因为它不提供对伪类的访问。即使使用 JavaFX 8+,我也不建议这样做,因为这会干扰由 JavaFX 管理的伪类。

但是,您可以根据 CSS 样式表中父级的悬停状态应用 CSS 规则,以使它们看起来与悬停节点相同。以下 CSS 假设您将 hover-container 样式类添加到父级:

/* a button in a hovered container should look the same as a hovered button */
.hover-container:hover .button {
    -fx-color: -fx-hover-base;
}

/* override above rule for armed buttons */
.hover-container:hover .button:armed {
    -fx-color: -fx-pressed-base;
}

关于JavaFX CSS : Apply hover effect to Child nodes when Parent node is hovered on,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48249936/

相关文章:

java - 如何获取传递给调用此方法的方法的参数?

Java 在方法调用中声明一个 String 数组

JavaFX TextArea 获取scrollTop百分比

java - 在文本javafx中显示变量值

java - 有什么方法可以在 JavaFX 中构建路径渐变?

java - 多部分文件到文件 InputStream

java - 如何放心验证数组是否包含对象?

javafx treetableview 单元格值未更新

Java - 选择复选框时的错误操作

javafx - 如何在 javafx-8 的 FXML 文件中绑定(bind)我自己的组件的自定义属性?