是否可以给出CSS中描述的效果的时间安排?
所以我想拥有的是,如果您按下一个按钮,则外观更改将持续更长的时间,甚至在发布之后也是如此。
因此,我将在本.button:pressed{}
节中想象某种命令,使之成为可能。
或者,如果仅在Java代码中可能,那就太好了!你有想法吗?谢谢!
因此,例如:
.button:hover:pressed {
-fx-background-color: #A6C3F1;
-fx-background-radius: 30;
-fx-text-fill: black;
//pseudo: -fx-pressed-lasts: 300 (milisec);
因此,如果在按住按钮的同时点击按钮,按钮将具有这种颜色。我希望这个颜色长300毫秒,即使在释放mouseclick之后也是如此。然后它会变回.button:hover{ - whatever -}
IMO是不可能在CSS内。在Java代码中,您可以使用
@Override
public void start( Stage primaryStage )
{
final Button btn = new Button( "Say 'Hello World'" );
final PauseTransition pt = new PauseTransition( Duration.millis( 3000 ) );
pt.setOnFinished( ( ActionEvent event ) ->
{
btn.getStyleClass().remove( "my-button-pressed" );
} );
btn.setOnMousePressed( ( MouseEvent event ) ->
{
if ( pt.getStatus() != Animation.Status.RUNNING )
{
btn.getStyleClass().add( "my-button-pressed" );
pt.play();
}
} );
StackPane root = new StackPane();
root.getChildren().add( btn );
Scene scene = new Scene( root, 300, 250 );
scene.getStylesheets().add( this.getClass().getResource( "style.css" ).toExternalForm() );
primaryStage.setScene( scene );
primaryStage.show();
}
与style.css类似
.my-button-pressed {
-fx-font: 16px "Serif";
-fx-padding: 10;
-fx-background-color: #CCFF99;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句