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

使用Tailwind CSS实现悬停时图片放大并淡出颜色遮罩

问题解决:图片悬停放大失效(遮罩层干扰)

问题根源在于遮罩层是绝对定位元素,完全覆盖在图片上方,导致鼠标悬停时实际触发的是遮罩层的hover事件,图片根本接收不到hover状态,所以放大效果无法生效。

直接修改代码,把hover状态的触发源从单个元素改成父容器即可:

<!-- TileGrid.svelte -->
<script lang="ts">
  import { projects } from "../data/project";
</script>

<div class="grid grid-cols-5 gap-4">
  {#each projects as project}
    <!-- 给父容器添加group类 -->
    <div class="tile relative overflow-hidden group">
      <img
        src={project.image}
        alt={project.title}
        <!-- 将hover:scale-125改为group-hover:scale-125 -->
        class="transition-transform duration-300 transform group-hover:scale-125"
      />
      <!-- Project title overlay -->
      <div
        <!-- 将hover:opacity-0改为group-hover:opacity-0 -->
        class="absolute inset-0 bg-black opacity-75 transition-opacity duration-300 group-hover:opacity-0"
      ></div>
      <div class="absolute bottom-0 left-0 p-4 text-white uppercase">
        <h2 class="text-lg font-semibold">{project.title}</h2>
      </div>
    </div>
  {/each}
</div>

<style lang="postcss">
  /* CSS classes here */
</style>

修改说明:

  • 给父容器.tile添加group类,Tailwind的group-*类会监听父容器的hover状态,传递给子元素
  • 图片的放大效果改为由父容器hover触发,避免遮罩层遮挡导致的事件捕获问题
  • 遮罩层的淡出效果同样绑定到父容器的hover状态,保持原有交互逻辑不变

这样修改后,鼠标悬停在整个tile区域时,图片会正常放大,遮罩层也会同步淡出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:02:39