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

React+TailwindCSS中悬停效果无法添加过渡动画,求解决方法

解决TailwindCSS卡片悬停平滑过渡问题

问题出在你用了hidden和group-hover:block控制元素显示隐藏——CSS不支持对display属性做过渡动画,所以直接加过渡类没用。得改用opacity和visibility组合实现,同时把过渡类加到要产生动画的元素本身上。

修改后的代码如下:

<div className="group relative grid w-80 h-full flex-col items-end justify-center overflow-hidden rounded-4xl text-center">
  {/* 背景层 */}
  <div className="absolute h-full w-full overflow-hidden bg-cardBg bg-cover bg-center">
    {/* 渐变遮罩层:用opacity+visibility替代hidden/block,添加过渡类 */}
    <div className="opacity-0 group-hover:opacity-100 invisible group-hover:visible cursor-pointer w-full h-full to-bg-black-10 bg-gradient-to-t from-black/70 via-black/20 transition-all duration-300 ease-in-out"></div>
  </div>

  {/* 文本层:同样用opacity+visibility,添加过渡类 */}
  <div className="opacity-0 group-hover:opacity-100 invisible group-hover:visible cursor-pointer relative p-6 px-6 transition-all duration-300 ease-in-out">
    <h2 className="mb-6 block text-4xl font-medium leading-[1.5] tracking-normal text-white antialiased">
      Shadowed Text Bla Bla Bla
    </h2>
  </div>
</div>

关键说明:

  • 用opacity-0(完全透明)替代hidden,group-hover:opacity-100替代group-hover:block,配合invisible/group-hover:visible确保元素隐藏时不响应点击,避免透明状态下触发交互。
  • 把transition-all duration-300 ease-in-out(可根据需求调整duration值,比如duration-500)加到渐变遮罩层和文本层上,让悬停时的透明度变化产生平滑过渡。
  • 过渡类不需要加在父元素group上,动画是作用在具体变化的子元素上的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 05:40:25