Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
396 views
in Technique[技术] by (71.8m points)

r - Display a button when the shiny app launches for first time that will lead to tabItems content

I have the shiny app below which includes tabItems. I would like when the app is launched for first time to display an actionbutton which will be out of the tabItems content. Then when I press it I will be moved into the Consent tabItem. This button will have no use from there and later and it should be disappeared since the tabItems' content will be displayed.

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyjs)

mytitle <- paste0("")
dbHeader <- dashboardHeaderPlus(
  titleWidth = "0px",
  tags$li(a(
    div(style="display: inline;margin-top:-35px; padding: 0px 90px 0px 1250px ;font-size: 44px ;color:#001641;font-family:Chronicle Display Light; width: 500px;",HTML(mytitle)),
    
    
    div(style="display: inline;padding: 0px 0px 0px 0px;vertical-align:top; width: 150px;", actionButton("conse", "Consent", 
                                                                                                         style=" background-color: #faf0e6; border-color: #faf0e6")),
    
  ),
  class = "dropdown")
  
  
)

shinyApp(
  ui = dashboardPagePlus(
    header = dbHeader,
    sidebar = dashboardSidebar(width = "0px",
                               sidebarMenu(id = "sidebar", # id important for updateTabItems
                                           menuItem("Consent", tabName = "conse", icon = icon("line-chart"))
                               )           ),
    body = dashboardBody(
      tags$head(tags$style(HTML('
  
    '))),
      useShinyjs(),
      tags$script(HTML("$('body').addClass('fixed');")),
      
      tags$head(tags$style(".skin-blue .main-header .logo { padding: 0px;}")),
      
      actionButton("button", "Get started",style='padding:4px; font-size:140%'),
      tabItems(
        tabItem("conse",
textInput("pos", label = ("Position"), value = "")

                )
        

      )
      
    )
    
  ),
  server<-shinyServer(function(input, output,session) { 
    hide(selector = "body > div > header > nav > a")
    
    
    observeEvent(input$button, {
      
        updateTabItems(session, "sidebar",
                       selected = "conse")
      
      
    })
    
  }
  )
)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Perhaps you are looking for this

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyjs)

mytitle <- paste0("")
dbHeader <- dashboardHeaderPlus(
  titleWidth = "0px",
  tags$li(a(
    div(style="display: inline;margin-top:-35px; padding: 0px 90px 0px 1250px ;font-size: 44px ;color:#001641;font-family:Chronicle Display Light; width: 500px;",HTML(mytitle)),


    div(style="display: inline;padding: 0px 0px 0px 0px;vertical-align:top; width: 150px;", actionButton("conse", "Consent",
                                                                                                         style=" background-color: #faf0e6; border-color: #faf0e6") ),

  ),  class = "dropdown")
)

shinyApp(
  ui = dashboardPagePlus(
    header = dbHeader,
    sidebar = dashboardSidebar(width = "0px",
                               sidebarMenu(id = "sidebar", # id important for updateTabItems
                                           menuItem("Consent", tabName = "conse", icon = icon("line-chart"))
                               )           ),
    body = dashboardBody(
      tags$head(tags$style(HTML('

    '))),
      useShinyjs(),
      tags$script(HTML("$('body').addClass('fixed');")),

      tags$head(tags$style(".skin-blue .main-header .logo { padding: 0px;}")),

      actionButton("button", "Get started",style='padding:4px; font-size:140%'),
      tabItems(
        tabItem("conse", textInput("pos", label = ("Position"), value = "") )
      )

    )

  ),
  server<-shinyServer(function(input, output,session) {
    hide(selector = "body > div > header > nav > a")
    shinyjs::hide("conse")
    shinyjs::hide("pos")

    observeEvent(input$button, {
      shinyjs::show("conse")
      shinyjs::show("pos")
      updateTabItems(session, "sidebar",
                     selected = "conse")
      shinyjs::hide("button")

    })

  }
  )
)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...