Mam aplikację Shiny - uproszczony przykład tutaj - i chcę, aby pasek boczny ukrywał się dynamicznie po przejściu do elementów karty. Rzeczywiście użytkownicy będą łączyć się z aplikacją głównie za pomocą telefonu komórkowego.R Błyszczące - Automatyczne ukrywanie paska bocznego podczas nawigacji w elementach tabulatora.
Przy pomocy posta Hide sidebar in default in shinydashboard, wiem, jak ukryć domyślnie pasek boczny po dotarciu do aplikacji, ale po wyświetleniu paska bocznego.
Oto mój rzeczywisty kod:
### Load librairies
library(shiny) ; library(shinydashboard) ; library(shinyjs)
library(dplyr)
### Load data
Weather <- c("cold", "rain", "snow","heat","sun")
Answer <- c("Take a coat","Take an umbrella","Take gloves","Take a swimsuit","Take solair cream")
Mydata <- data.frame(Weather, Answer, stringsAsFactors = FALSE)
remove(Weather, Answer)
### Shiny
Entete <- dashboardHeader(title = "My app")
BarreLaterale <- dashboardSidebar(
sidebarMenu(menuItem(text = "Home", tabName = "MyHome", icon = icon("home"))),
sidebarMenu(menuItem(text = "My search", tabName = "Search", icon = icon("search")))
)
Corps <- dashboardBody(
useShinyjs(),
tabItems(
tabItem(tabName = "MyHome",
fluidPage("Hello, welcome to the home page")
),
tabItem(tabName = "Search",
fluidRow(
box(title = "Weather choice", width = 6, solidHeader = TRUE, status = "danger",
selectInput(inputId = "WeatherChoice", label = NULL, choices = unique(Mydata$Weather))),
box(title = "Answer", width = 6, solidHeader = TRUE, status = "danger",
textOutput("ReturnAnswer"))
)
)
)
)
Interface <- dashboardPage(Entete, BarreLaterale, Corps, skin = "red")
### Server R
Serveur <- function(input, output, session) {
output$ReturnAnswer <- renderText({
as.character(Mydata %>% filter(Weather == input$WeatherChoice) %>% select(Answer))
})
addClass(selector = "body", class = "sidebar-collapse")
}
### Application
shinyApp(Interface, Serveur)
Dodatkowy komentarz: po opublikowaniu mojej aplikacji zachowanie jest dobre, gdy korzystam z przeglądarki z mojego komputera, ale nie w przeglądarce mobilnej. Dowolny pomysł ? https://salsapedia.shinyapps.io/TestApp/ – Kumpelka
Sprawdziłem stronę w przeglądarce mobilnej i wydaje się, że używane klasy zależą od szerokości przeglądarki. Dodałem więc wiersz 'removeClass (selector =" body ", class =" sidebar-open ")' do obsługi przeglądarek o małej szerokości, mam nadzieję, że to rozwiązuje twój problem. – Florian