2017-05-22 2 views
4

Ich bin dabei, die showNotification-Funktionalität von Shiny anzupassen.R Shiny showNotification

https://gallery.shinyapps.io/116-notifications/

Ich würde die Botschaft gerne in der Mitte des Bildschirms erzeugt werden, wie auf der rechten unteren Ecke gegenüber. Ich glaube nicht, dass dies natürlich geschehen kann, aber ich hoffe, dass jemand einen Vorschlag dafür bekommen wird, wie das zu erreichen ist.

Danke

Antwort

6

Sie Tags $ Stil verwenden können, um die CSS-Klasse Eigenschaften zu überschreiben. Sie können mit diesem Ansatz auch andere Eigenschaften wie Breite und Höhe anpassen. Die unten verwendete App-Vorlage wurde aus dem Code in dem von Ihnen bereitgestellten Link übernommen. Diese spezifische CSS-Anpassung für Notifier habe ich auch in einer anderen bestehenden Antwort verwendet, aber ich finde den Link gerade nicht, um ihn zu referenzieren.

shinyApp(
    ui = fluidPage(
    tags$head(
     tags$style(
     HTML(".shiny-notification { 
      position:fixed; 
      top: calc(50%);; 
      left: calc(50%);; 
      } 
      " 
      ) 
     ) 
    ), 
    textInput("txt", "Content", "Text of message"), 
    radioButtons("duration", "Seconds before fading out", 
       choices = c("2", "5", "10", "Never"), 
       inline = TRUE 
    ), 
    radioButtons("type", "Type", 
       choices = c("default", "message", "warning", "error"), 
       inline = TRUE 
    ), 
    checkboxInput("close", "Close button?", TRUE), 
    actionButton("show", "Show"), 
    actionButton("remove", "Remove most recent") 
), 
    server = function(input, output) { 
    id <- NULL 

    observeEvent(input$show, { 
     if (input$duration == "Never") 
     duration <- NA 
     else 
     duration <- as.numeric(input$duration) 

     type <- input$type 
     if (is.null(type)) type <- NULL 

     id <<- showNotification(
     input$txt, 
     duration = duration, 
     closeButton = input$close, 
     type = type 
    ) 
    }) 

    observeEvent(input$remove, { 
     removeNotification(id) 
    }) 
    } 
) 
+0

Perfekte Mr BigDataScientist! –