блестящая панель вкладок изменения, а затем центрируйтесь на конкретном элементе c - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь создать ссылку, которая будет сосредоточена на конкретном элементе c на другой панели вкладок.

Элемент находится довольно далеко вниз по странице на второй вкладке. Я смоделировал это с помощью нескольких br(), которые отправляют элемент сюжета ниже на странице.

Я знаю, как переключиться на эту вкладку, но как я могу переключиться на эту вкладку, а затем сосредоточиться на элементе графика?

Если я попытаюсь добавить #plot1 к ссылке, она перестанет работать.

Вот пример:

library(shiny)
library(shinydashboard) 

ui <- dashboardPage(
    dashboardHeader(title = "exampleApp"),
    dashboardSidebar(        
        sidebarMenu(
            id = "menu_",            
            menuItem("Tab1", tabName = "tab1", icon = icon("dashboard"), selected=TRUE),
            menuItem("Tab2", tabName = "tab2", icon = icon("burn"))            
        )
    ),
    dashboardBody(
        tabItems(
            #first tab content
            tabItem(tabName = "tab1",    
                fluidRow(                    
                    column(12,
                        textOutput("inputText1", inline = TRUE),
                        #"Instructions on how to input data can be found ",
                        actionLink("link_to_plot", "here")                        
                    )
                )
            ),
            #second tab content
            tabItem(tabName = "tab2",
                br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),
                br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),
                br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),br(),
                fluidRow(  #12 width per row
                    column(
                        width = 4,        
                        fluidRow(
                            div(style = "margin:auto; padding-bottom:1%",
                                plotOutput("plot1", height = 150 * .98)
                            )
                        )
                    )
                )
            )
        )
    )
)

server <- function(input, output, session){
    output$plot1 <- renderPlot({            
        plot(1:10, type="l", col="red")
    })
    output$inputText1 <- renderText({ 
        "You will transfer to plot if you click "        
    })    

    observeEvent(input$link_to_plot, {
        updateTabItems(session, "menu_", selected = "tab2/#plot1")
    })
}        

runApp(shinyApp(ui, server))
...