shinydashboardPlus中菜单项箭头图标无法旋转问题求助
解决shinydashboardPlus菜单项箭头无法旋转的问题
当用shinydashboard::dashboardPage()构建界面时,带子菜单的菜单项箭头会随展开/折叠自动旋转,但换成shinydashboardPlus::dashboardPage()后,这个旋转效果就失效了。这是因为shinydashboardPlus的默认样式覆盖了shinydashboard中原有的箭头旋转逻辑,以下是两种可行的修复方案:
方案一:添加自定义CSS恢复旋转效果
在dashboardBody中插入自定义CSS,补全箭头旋转的样式规则:
library(shiny) library(shinydashboard) library(shinydashboardPlus) header <- shinydashboard::dashboardHeader() sidebar <- shinydashboard::dashboardSidebar( sidebarMenu( id = "tabs", menuItem("Charts", icon = icon("bar-chart-o"), menuSubItem("Sub-item 1", tabName = "subitem1"), menuSubItem("Sub-item 2", tabName = "subitem2")), menuItem("Widgets", icon = icon("th"), tabName = "widgets", menuSubItem("Sub-item 3", tabName = "subitem3"), menuSubItem("Sub-item 4", tabName = "subitem4")) ) ) body <- shinydashboard::dashboardBody( tags$style(HTML(" /* 修复菜单项箭头旋转效果 */ .sidebar-menu .treeview-menu.active + .treeview > a > .pull-right-container > .fa-angle-left { transform: rotate(90deg); } .sidebar-menu .treeview > a > .pull-right-container > .fa-angle-left { transition: transform 0.3s ease; } ")) ) shinyApp( ui = shinydashboardPlus::dashboardPage(header, sidebar, body), server = function(input, output) { } )
方案二:使用shinydashboardPlus原生侧边栏组件
改用shinydashboardPlus::dashboardSidebarPlus替代shinydashboard::dashboardSidebar,它自带适配的箭头旋转逻辑:
library(shiny) library(shinydashboard) library(shinydashboardPlus) header <- shinydashboard::dashboardHeader() sidebar <- shinydashboardPlus::dashboardSidebarPlus( sidebarMenu( id = "tabs", menuItem("Charts", icon = icon("bar-chart-o"), menuSubItem("Sub-item 1", tabName = "subitem1"), menuSubItem("Sub-item 2", tabName = "subitem2")), menuItem("Widgets", icon = icon("th"), tabName = "widgets", menuSubItem("Sub-item 3", tabName = "subitem3"), menuSubItem("Sub-item 4", tabName = "subitem4")) ) ) body <- shinydashboard::dashboardBody() shinyApp( ui = shinydashboardPlus::dashboardPage(header, sidebar, body), server = function(input, output) { } )
内容的提问来源于stack exchange,提问作者Rezious
相关产品推荐
相关产品推荐

