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

如何移除shinydashboardPlus中flipBox的默认点击翻转触发器

禁用shinydashboardPlus中flipBox默认点击翻转的实现方案

flipBox 组件默认会给整个卡片容器绑定点击翻转事件,要实现仅按钮触发翻转的效果,不需要修改原有业务逻辑,只需要补充自定义样式和脚本屏蔽默认行为即可:

  • 添加CSS样式覆盖默认的手型鼠标指针,避免误导用户认为卡片可点击
  • 添加初始化脚本,解绑flipBox容器绑定的默认点击翻转事件,同时不影响卡片内部DT表格、绘图等元素的正常交互

完整修改后可运行代码

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)

shinyApp(
  ui = dashboardPage(
    dashboardHeader(),
    dashboardSidebar(),
    dashboardBody(
      # 自定义样式和脚本,禁用flipBox默认点击翻转
      tags$style(HTML("
        .flip-box {
          cursor: default !important;
        }
      ")),
      tags$script(HTML("
        $(document).on('shiny:connected', function() {
          // 解绑组件默认绑定的点击翻转事件
          $('.flip-box').off('click');
          // 阻止卡片区域点击冒泡触发翻转,不影响内部元素交互
          $('.flip-box').on('click', function(e) {
            e.stopPropagation();
          });
        });
      ")),
      
      actionButton("swich_id", "click to swich"), # 保留原有按钮触发逻辑
      flipBox(
        id = "id1",
        front = div(
          class = "text-center",
          height = "300px",
          width = "100%",
          h1("A"), 
          p("a table"),
          DT::DTOutput('mytable')
        ),
        back = div(
          class = "text-center",
          height = "300px",
          width = "100%",
          h1("B"),
          p("a graphe"),
          plotOutput("graph")
        )
      )
    )
  ),
  
  server = function(input, output, session) {
    output$mytable <- DT::renderDT({
      cars[1:5, 1:2]
    })
    
    output$graph <- renderPlot({
      plot(cars$speed, cars$dist)
    })
    
    # 原有按钮触发翻转逻辑无需修改
    observeEvent(input$swich_id, {
      updateFlipBox("id1")
    })
  }
)

效果说明

脚本会在Shiny应用加载完成后自动执行,仅移除flipBox最外层容器的翻转触发绑定:

  • 点击卡片任意空白区域都不会再触发翻转
  • 卡片内部的表格筛选、分页,绘图交互等操作完全不受影响
  • 原有自定义按钮的翻转触发逻辑可以正常工作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:39:09