Skip to content

3D Tilt 3D 倾斜卡片

🎯 效果

鼠标悬停时卡片产生 3D 倾斜效果,配合光影变化,极具空间感。纯 CSS 实现基础版,JS 增强版可跟随鼠标角度。

实时预览

🎮
基础 3D
鼠标悬停试试看!卡片会向左上方倾斜,产生 3D 空间感。
🌈
渐变变体
渐变背景 + 3D 倾斜,适合展示产品特性或定价卡片。
💎
玻璃变体
毛玻璃 + 3D 倾斜的组合效果,高级感拉满。

代码

html
<!-- 基础用法 -->
<div class="tilt-card">
  <div class="tilt-card__inner">
    <div class="tilt-card__shine"></div>
    <div class="tilt-card__icon">🎮</div>
    <div class="tilt-card__title">标题</div>
    <div class="tilt-card__desc">描述内容...</div>
  </div>
</div>

<!-- 渐变变体 -->
<div class="tilt-card tilt-card--gradient">
  <div class="tilt-card__inner">...</div>
</div>

JS 增强版(跟随鼠标)

html
<div class="tilt-card tilt-card--js">
  <div class="tilt-card__inner" id="myTilt">
    <div class="tilt-card__icon">🎯</div>
    <div class="tilt-card__title">跟随鼠标</div>
    <div class="tilt-card__desc">鼠标在卡片上移动时,倾斜角度跟随变化。</div>
  </div>
</div>

<script>
const card = document.getElementById('myTilt');
card.parentElement.addEventListener('mousemove', (e) => {
  const rect = card.getBoundingClientRect();
  const x = (e.clientX - rect.left) / rect.width - 0.5;
  const y = (e.clientY - rect.top) / rect.height - 0.5;
  card.style.transform = `
    rotateY(${x * 20}deg) 
    rotateX(${-y * 20}deg) 
    translateZ(20px)
  `;
});
card.parentElement.addEventListener('mouseleave', () => {
  card.style.transform = '';
});
</script>

变体

变体Class效果
默认.tilt-card深色背景 3D 倾斜
渐变--gradient紫粉渐变背景
玻璃--glass毛玻璃效果

AI 使用说明

组件名: 3d-tilt
选择器: .tilt-card
结构: .tilt-card > .tilt-card__inner > (.tilt-card__shine + 内容)
变体: --gradient | --glass
JS增强: .tilt-card--js + mousemove 事件监听
关键属性: perspective: 1000px + transform-style: preserve-3d
注意: 内部元素用 translateZ() 实现深度差

纯 HTML + CSS,零框架依赖,AI 友好