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

Shiny中pickerInput点击箭头翻转动画实现求助

解决Shiny pickerInput箭头翻转动画问题

你的问题出在两个关键点:一是错误地给整个按钮应用旋转效果,而非单独针对箭头元素;二是状态类匹配错误——shinyWidgets的pickerInput展开时,按钮的父容器会自动添加.open类,而非你用的.collapsed。下面是修正后的代码,仅保留箭头翻转动画,完全保留原生pickerInput的默认样式:

fluidRow(
  tags$head(
    tags$style(
      "
      /* 给picker的箭头元素添加过渡动画 */
      .brand-picker .dropdown-toggle .caret {
        transition: transform 0.2s ease-in-out;
      }
      
      /* 当picker展开时,箭头旋转180度 */
      .brand-picker.open .dropdown-toggle .caret {
        transform: rotate(180deg);
      }
      "
    )
  ),
  column(4, tags$div(
    shinyWidgets::pickerInput(
      inputId = "brand", "Brand", 
      choices = unique(df1$Brand), 
      selected = "Kanzler",
      options = list(`actions-box` = TRUE),
      multiple = T), 
    class = "brand-picker"
  ))
)

核心修正点:

  • 直接定位到picker内部的箭头元素.dropdown-toggle .caret,避免修改按钮整体样式
  • 利用picker展开时父容器自动添加的.open类来触发箭头旋转
  • 仅保留箭头的过渡动画和旋转规则,完全不改动picker的默认外观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:25:19