我想构建一个多页闪亮的应用程序,在这里我可以控制用户可以看到的页面。 Dean Attali执行something similiar in this demonstration app,使用shinyjs
隐藏和显示每个页面。
如果可以隐藏导航栏或导航列表,我想using navbar()
, navlist()
or tabsetPanel()
可能还有其他方法。优点是只需通过updateTabsetPanel()
,updateNavbarPage()
或updateNavlistPabel()
更新页面,并且不再需要shinyjs
。
所以我的问题是:如何隐藏navbarPanel()的导航栏,例如使用CSS?
可以在此处找到示例应用程序:https://shiny.rstudio.com/gallery/navbar-example.html。我试图在此示例中包括一些CSS以隐藏导航栏,但直到现在,我仅设法隐藏了所有内容(通过将.navbar设置为visible:hidden)或除navbar-title以外的所有内容(通过将.navbar-nav设置为visible :隐)。隐藏的正确元素是什么-或隐藏的元素和子元素重新显示的正确组合是什么?
编辑:正如Chabo所指出的那样-主要问题似乎是当导航栏的可见性设置为隐藏,甚至display = none时,该应用程序不会设置活动标签没有其他显示。
#https://shiny.rstudio.com/gallery/navbar-example.html
library(shiny)
ui<- navbarPage("Navbar!",
tags$head(
#here something is wrong.
# .navbar makes everything invisible
#.navbar-nav makes everything invisible but the navbar-title
tags$style(HTML("
.navbar-nav{
visibility: hidden;
}
")
)
),
tabPanel("Plot",
sidebarLayout(
sidebarPanel(
radioButtons("plotType", "Plot type",
c("Scatter"="p", "Line"="l")
)
),
mainPanel(
plotOutput("plot")
)
)
),
tabPanel("Summary",
verbatimTextOutput("summary")
)
)
server<- function(input, output, session) {
output$plot <- renderPlot({
plot(cars, type=input$plotType)
})
output$summary <- renderPrint({
summary(cars)
})
output$table <- DT::renderDataTable({
DT::datatable(cars)
})
}
shinyApp(ui, server)