8

サーバー側から光沢のあるダッシュボード アプリのサイドバーを手動で無効/有効にする方法はありますか?

ヘッダーのトグル ボタンを使用せずに、より多くのスペースが必要なときにサイドバーを自動的に非表示にしたいと考えています。

ありがとうございました

4

1 に答える 1

16

ダッシュボードは作成したことがないのでよくわかりませんが、ざっと見てみると、サイドバーを開く/非表示のボタンをクリックすると、クラスがタグsidebar-collapseに追加/削除されるだけのようです。<body>私が気づいていないことがもっと起こるかもしれませんが、それが最も目に見えることのように思えました.

したがって、 shinyjsパッケージ (免責事項: 私は作成者です) を使用して、そのクラスを簡単に追加/削除できます。

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

shinyApp(
  ui = 
    dashboardPage(
      dashboardHeader(),
      dashboardSidebar(),
      dashboardBody(
        shinyjs::useShinyjs(),
        actionButton("showSidebar", "Show sidebar"),
        actionButton("hideSidebar", "Hide sidebar")
      )
    ),
  server = function(input, output, session) {
    observeEvent(input$showSidebar, {
      shinyjs::removeClass(selector = "body", class = "sidebar-collapse")
    })
    observeEvent(input$hideSidebar, {
      shinyjs::addClass(selector = "body", class = "sidebar-collapse")
    })
  }
)
于 2015-07-09T01:39:34.997 に答える