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

如何修改Vuetify 3中VExpansionPanel展开图标的hover颜色?

Vuetify 3 VExpansionPanel 图标悬停变色实现方案

要实现鼠标悬停时展开/折叠图标切换颜色,你可以通过深度选择器穿透Vuetify组件的封装样式,直接定位图标元素并设置hover状态样式,具体操作如下:

1. 保留原有模板代码

<VExpansionPanels class="py-6 px-16">
  <VExpansionPanel
    expand-icon="material-symbols:arrow-circle-down-outline-rounded"
    collapse-icon="material-symbols:arrow-circle-up-outline-rounded"
    v-for="faq in faqs"
    :key="faq.question"
    :title="faq.question"
    :text="faq.answer"
    class="expansion-panel mb-2"
  />
</VExpansionPanels>

2. 添加Scoped样式

在组件的<style>标签中使用:deep()深度选择器,指定悬停时的图标颜色:

<style scoped>
/* 可选:给图标添加过渡动画,让颜色变化更平滑 */
:deep(.expansion-panel .v-expansion-panel-header__icon) {
  transition: color 0.2s ease;
}

/* 鼠标悬停时统一切换图标颜色 */
:deep(.expansion-panel:hover .v-expansion-panel-header__icon) {
  color: #1976d2; /* 替换成你需要的目标颜色 */
}

/* 进阶:区分展开/折叠状态的悬停颜色 */
:deep(.expansion-panel:not(.v-expansion-panel--active):hover .v-expansion-panel-header__icon) {
  color: #2196f3; /* 未展开时的悬停颜色 */
}

:deep(.expansion-panel.v-expansion-panel--active:hover .v-expansion-panel-header__icon) {
  color: #ff5722; /* 已展开时的悬停颜色 */
}
</style>

关键说明

  • :deep()是Vue3中用于穿透scoped样式的选择器,能访问到Vuetify组件内部的DOM元素类名
  • .v-expansion-panel-header__icon是Vuetify展开面板头部图标的默认类名
  • 可根据需求调整颜色值和过渡动画参数,实现个性化效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:25:51