首页 文章

加载闪亮仪表板的页面

提问于
浏览
2

我正在尝试为我的仪表板创建一个加载页面,但我似乎无法让它工作 . 我按照这里的例子; Shiny Dashboard - display a dedicated "loading.." page until initial loading of the data is done但它是流动页面而不是闪亮的仪表板,我无法弄清楚如何适应它 .

任何帮助,将不胜感激!

我希望加载页面只是一个流畅的页面(没有 Headers 或侧边栏),然后让我的主仪表板具有闪亮的仪表板方面 .

额外:如果我可以在加载屏幕上添加一个gif,那将是惊人的 . 就像是:

<iframe src="https://giphy.com/embed/BlmF3MhGfa4SY" width="480" height="360" frameBorder="0" class="giphy-embed" allowFullScreen></iframe><p><a href="https://giphy.com/gifs/plane-BlmF3MhGfa4SY">via GIPHY</a></p>

[打破]

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


rm(list=ls())

appCSS <- "
#loading_page {
  position: absolute;
  background: #000000;
  opacity: 0.9;
  z-index: 100;
  left: 0;
  right: 0;
  height: 100%;
  text-align: center;
  color: #FFFFFF;
}
"
header <- dashboardHeader()
sidebar <- dashboardSidebar()
body <- dashboardBody("It worked!")


ui <- dashboardPage(
  useShinyjs(),
  inlineCSS(appCSS),
  div(
    id = "loading_page",
    dashboardHeader(),
    dashboardSidebar(),
    dashboardBody("Loading...")
  ),
  hidden(
    div(
      id = "main_content",
      header, sidebar, body
    )
  )
)


server = function(input, output, session) {
    # Simulate work being done for 4 second
    Sys.sleep(4)

    hide("loading_page")
    show("main_content") 
  }

shinyApp(ui, server)

1 回答

  • 3

    试试这个库 shinycssloaders

    library(shiny)
    library(shinycssloaders)
    library(highcharter)
    
    ui <- fluidPage(
            mainPanel(
                    plotOutput("my_plot")  %>% withSpinner(color="#0dc5c1")
            )
    )
    
    server <- function(input, output){
    
            output$my_plot <- renderPlot({
                    Sys.sleep(1)
                    plot(mtcars)})
    }
    
    shinyApp(ui, server)
    

相关问题