【问题标题】:How to keep titlePanel (or shinyWidgets::panel) fixed while scrolling?滚动时如何保持titlePanel(或shinyWidgets::panel)固定?
【发布时间】:2020-02-04 22:06:09
【问题描述】:

我有兴趣在滚动时将一组操作按钮固定在页面顶部。 如何为基本闪亮的“titlePanel”或“shinyWidgets::panel”中的一个(或两者)执行此操作?

我对基础闪亮的 UI 代码的尝试:

ui <- shinyUI(fluidPage(
  titlePanel(style = "position:fixed;width:inherit;",
    fluidRow(
      column(12, align="center",
             actionButton("rmd1", "RMD1"),
             actionButton("rmd2", "RMD2")
      )
    ))
  ,uiOutput("uioutput")

))

我尝试使用 shinyWidgets::panel 编写 UI 代码:

ui <- shinyUI(fluidPage(
  shinyWidgets::panel(style = "position:fixed;width:inherit;",
    fluidRow(
      column(12, align="center",
             actionButton("rmd1", "RMD1"),
             actionButton("rmd2", "RMD2")
      )
    ))
  ,uiOutput("uioutput")

))

附:出于几个原因,我避免使用“absolutePanel”。 1.) 我喜欢 titlePanel 和 shinyWidgets::panel 有自己的空间区域。 AKA,我喜欢这些选项的“外观”。 2.) 我没有使用 absolutePanel 的经验,也不知道如何居中、更改大小等。

话虽如此,如果 absolutePanel 存在一个解决方案,使它看起来像其他两个选项之一,我不反对尝试它。

【问题讨论】:

  • 位置:绝对似乎对我不起作用。我添加了关于 absolutePanel 的编辑
  • position:fixed 应该是正确的,基于 stackoverflow.com/questions/18210677/… 。您是否尝试添加 !important?

标签: r shiny r-markdown


【解决方案1】:

你快到了。您可以简单地将 titlePanel 包裹在 div 中以设置样式:

library(shiny)

ui <- shinyUI(fluidPage(
  div(titlePanel(fluidRow(
               column(12, align="center",
                      actionButton("rmd1", "RMD1"),
                      actionButton("rmd2", "RMD2")
               )
             )), style = "position:fixed; width:inherit;"),
  uiOutput("uioutput", height = "2000px")

))

server <- function(input, output, session) {
  output$uioutput <- renderUI({tagList(HTML(rep("...<br>", 100)), hr())})
}

shinyApp(ui, server)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多