One main panel and 2 side panels
Asked Answered
T

1

15

Using Shiny, does anyone happen to know how to create a UI with one main panel (middle) and two side panels (left and right) with each one has their own horizontal and vertical scroll bar?

Trawler answered 12/6, 2016 at 17:46 Comment(0)
K
12

You can use fluidRow and column. Here is an example. You can adjust the column width, as long as the total adds to 12.

library(shiny)

ui <- shinyUI(fluidPage(

   titlePanel("Old Faithful Geyser Data"),

   fluidRow(
     column(2,
            sliderInput("bins",
                        "Number of bins:",
                        min = 1,
                        max = 50,
                        value = 30),
            style="overflow-x: scroll; overflow-y: scroll"),
     column(8,
            plotOutput("distPlot")),
     column(2,
            textInput("test", "Test"),
            style="overflow-x: scroll; overflow-y: scroll")
   )
))

server <- shinyServer(function(input, output) {

   output$distPlot <- renderPlot({
      x    <- faithful[, 2] 
      bins <- seq(min(x), max(x), length.out = input$bins + 1)

      hist(x, breaks = bins, col = 'darkgray', border = 'white')
   })
})

shinyApp(ui = ui, server = server)
Kweiyang answered 13/6, 2016 at 0:54 Comment(2)
Hello, thank you for helping. I added 20 sliderinput and 20 text input to test the vertical scroll. It doesn't scroll. Do I need to do add anything to the code? Thanks.Trawler
You just need to add height: 400px; in styleKweiyang

© 2022 - 2024 — McMap. All rights reserved.