You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Shiny的showNotification支持垂直滚动?

给Shiny的showNotification添加垂直滚动功能

要解决长内容通知无法查看全部的问题,核心是通过自定义CSS限制通知框的最大高度,并开启垂直滚动。具体实现如下:

完整解决方案代码

library(shiny)

shinyApp(
  ui = fluidPage(
    # 自定义通知框样式
    tags$head(
      tags$style(HTML("
        .shiny-notification {
          max-height: 400px; /* 可按需调整最大高度 */
          overflow-y: auto; /* 超出高度后显示垂直滚动条 */
          padding: 10px; /* 保持内容与边框的间距 */
        }
      "))
    ),
    actionButton("show", "Show")
  ),
  server = function(input, output) {
    observeEvent(input$show, {
      showNotification(
        "R version 4.3.0 (2023-04-21 ucrt) -- Already Tomorrow
        Copyright (C) 2023 The R Foundation for Statistical Computing
        Platform: x86_64-w64-mingw32/x64 (64-bit)

        R is free software and comes with ABSOLUTELY NO WARRANTY.
        You are welcome to redistribute it under certain conditions.
        Type 'license()' or 'licence()' for distribution details.

        R is a collaborative project with many contributors.
        Type 'contributors()' for more information and
        'citation()' on how to cite R or R packages in publications.

        Type 'demo()' for some demos, 'help()' for on-line help, or
        'help.start()' for an HTML browser interface to help.
        Type 'q()' to quit R.

        R version 4.3.0 (2023-04-21 ucrt) -- Already Tomorrow
        Copyright (C) 2023 The R Foundation for Statistical Computing
        Platform: x86_64-w64-mingw32/x64 (64-bit)

        R is free software and comes with ABSOLUTELY NO WARRANTY.
        You are welcome to redistribute it under certain conditions.
        Type 'license()' or 'licence()' for distribution details.

        R is a collaborative project with many contributors.
        Type 'contributors()' for more information and
        'citation()' on how to cite R or R packages in publications.

        Type 'demo()' for some demos, 'help()' for on-line help, or
        'help.start()' for an HTML browser interface to help.
        Type 'q()' to quit R.

        R version 4.3.0 (2023-04-21 ucrt) -- Already Tomorrow
        Copyright (C) 2023 The R Foundation for Statistical Computing
        Platform: x86_64-w64-mingw32/x64 (64-bit)

        R is free software and comes with ABSOLUTELY NO WARRANTY.
        You are welcome to redistribute it under certain conditions.
        Type 'license()' or 'licence()' for distribution details.

        R is a collaborative project with many contributors.
        Type 'contributors()' for more information and
        'citation()' on how to cite R or R packages in publications.

        Type 'demo()' for some demos, 'help()' for on-line help, or
        'help.start()' for an HTML browser interface to help.
        Type 'q()' to quit R.

        R version 4.3.0 (2023-04-21 ucrt) -- Already Tomorrow
        Copyright (C) 2023 The R Foundation for Statistical Computing
        Platform: x86_64-w64-mingw32/x64 (64-bit)

        R is free software and comes with ABSOLUTELY NO WARRANTY.
        You are welcome to redistribute it under certain conditions.
        Type 'license()' or 'licence()' for distribution details.

        R is a collaborative project with many contributors.
        Type 'contributors()' for more information and
        'citation()' on how to cite R or R packages in publications.

        Type 'demo()' for some demos, 'help()' for on-line help, or
        'help.start()' for an HTML browser interface to help.
        Type 'q()' to quit R.

        R version 4.3.0 (2023-04-21 ucrt) -- Already Tomorrow
        Copyright (C) 2023 The R Foundation for Statistical Computing
        Platform: x86_64-w64-mingw32/x64 (64-bit)

        R is free software and comes with ABSOLUTELY NO WARRANTY.
        You are welcome to redistribute it under certain conditions.
        Type 'license()' or 'licence()' for distribution details.

        R is a collaborative project with many contributors.
        Type 'contributors()' for more information and
        'citation()' on how to cite R or R packages in publications.

        Type 'demo()' for some demos, 'help()' for on-line help, or
        'help.start()' for an HTML browser interface to help.
        Type 'q()' to quit R."
      )
    })
  }
)

核心逻辑说明

  • CSS样式控制:通过.shiny-notification选择器定位所有Shiny通知框,设置max-height限制其最大显示高度,overflow-y: auto让超出部分自动显示垂直滚动条。
  • 样式兼容性:保留默认内边距,避免内容紧贴边框,保证阅读体验。
  • 全局生效:该样式会作用于所有showNotification生成的通知,无需单独配置每个通知。

内容的提问来源于stack exchange,提问作者ifoxfoot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:25:26