Вы можете добавить свитки, используя CSS. В блестящем, используйте тег tags$style
, чтобы определить свойства css и оберните в тег tags$head
. Вы можете выбрать целевой элемент, используя идентификатор элемента вывода (т. Е. #TextThatIWantToHaveAScroll
), блестящий класс для вывода текста (т. Е. shiny-text-output
) или имя тега (т. Е. pre
). Если у вас есть более одного элемента, который должен получить одно и то же лечение, тогда лучше использовать .shiny-text-output
.
Чтобы создать прокрутку для нужного элемента (как в примере; с использованием идентификатора), сначала установите свойства высоты и ширины, а затем используйте overflow: scroll
. Например:
#TextThatIWantToHaveAScroll {
width: 100%;
height: 60px;
overflow: scroll;
}
Отрегулируйте высоту и ширину по необходимости. Доступны и другие варианты прокрутки. См. Руководство Mozilla CSS по свойству overflow. Вот полный пример:
# Shiny example
library(shinydashboard)
library(shiny)
library(stringi)
library(shinyWidgets)
# Data
# Some random letters
names<- stringi::stri_rand_strings(100,20)
# Some random numbers
numbers<- runif(100,0,100000)
# a df
df<- as.data.frame(cbind(names, numbers))
shinyApp(
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(
tags$head(
tags$style(
"#TextThatIWantToHaveAScroll {
width: 100%;
height: 60px;
overflow: scroll;
}"
),
),
absolutePanel(id="panel", fixed = FALSE,
draggable = F, top = 80, left = "auto", right = 60, bottom = "auto",
width = 290, height = 370,
box( title = "Box example",
status = "warning", width = 230, solidHeader = T,
pickerInput(
inputId = "select_nb_names",
choices = names,
multiple = TRUE,
selected = NULL,
width = 190,inline = FALSE),
# the textoutput that only has an x-axis scrollbar
textOutput("TextThatIWantToHaveAScroll",container = pre))))),
server <- function(input, output, session) {
output$TextThatIWantToHaveAScroll<- renderText(
paste0( input$select_nb_names," : ",df$numbers[df$names%in%input$select_nb_names],"\n"))
}
# Run the application
)