Вопрос:

R Shiny showNotification

css r shiny shinydashboard

2682 просмотра

1 ответ

379 Репутация автора

Я смотрю на настройку функциональности showNotification от Shiny.

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

Я хотел бы, чтобы сообщение генерировалось в центре экрана, а не в правом нижнем углу. Я не думаю, что это можно установить изначально, но я надеюсь, что у кого-то будет предложение, как это сделать.

Спасибо

Автор: J. Doe. Источник Размещён: 22.05.2017 11:43

Ответы (1)


14 плюса

9085 Репутация автора

Решение

Вы можете использовать tags$styleдля перезаписи свойств класса CSS (в данном случае:) .shiny-notification. Вы также можете настроить другие свойства, такие как ширина и высота с этим подходом.

Часть CSS будет:

.shiny-notification {
             position:fixed;
             top: calc(50%);;
             left: calc(50%);;
             }

это устанавливает уведомление на 50% ширины экрана и 50% ширины высоты.

Вы можете включить в CSS блестящий код , используя следующую uiфункцию.

tags$head(
      tags$style(
        HTML(CSS-CODE....)
      )
)

Полное воспроизводимое приложение ниже:

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)
    })
  }
)

Шаблон приложения, использованный ниже, я взял из кода, который вы указали.

Автор: BigDataScientist Размещён: 22.05.2017 11:47
Вопросы из категории :
32x32