团队成员卡片(悬停社交链接 + 简介弹窗 CSS 源码)

CSSJS 许可:自研原创

团队成员卡片组件源码:渐变头像、悬停依次浮现社交链接、简介弹窗带缩放动画,纯 CSS + 原生 JS 实现,适合团队介绍页与关于我们页面。

效果演示(真实可交互)

下方为 3 张团队成员卡片:悬停时卡片上浮、头像放大旋转、三个社交链接从底部依次浮现(带 0.05s 级联延迟);点击”查看简介”会弹出带缩放动画的详情弹窗,点击遮罩或关闭按钮可退出。

粤

粤喵

创始人 · 前端架构师

专注 CSS 动效 8 年,组件站发起人,负责整体架构与技术方向。

鱼

鱼崽

UI 设计师 · 动效控

负责组件视觉规范与交互细节,追求每一个像素的呼吸感。

猫

猫叔

全栈工程师 · 组件作者

负责演示组件开发与性能优化,喜欢把复杂效果拆成可复用的零件。

完整代码

HTML 结构:每张卡片包含头像、姓名、职位、两行截断的个人简介、社交链接组(默认隐藏)与”查看简介”按钮:

<div class="tm-card">
  <div class="tm-avatar av1">粤</div>
  <h3 class="tm-name">粤喵</h3>
  <p class="tm-role">创始人 · 前端架构师</p>
  <p class="tm-bio">专注 CSS 动效 8 年,组件站发起人。</p>
  <div class="tm-socials">
    <a class="tm-soc">GH</a><a class="tm-soc">掘</a><a class="tm-soc">微</a>
  </div>
  <button class="tm-more">查看简介</button>
</div>

核心 CSS:社交链接默认透明 + 下移,卡片悬停时依次浮现;简介弹窗用 fixed 遮罩 + 缩放动画:

.tm-soc { opacity: 0; transform: translateY(8px); transition: all .25s ease; }
.tm-card:hover .tm-soc { opacity: 1; transform: translateY(0); }
.tm-card:hover .tm-soc:nth-child(2) { transition-delay: .05s; }
.tm-card:hover .tm-soc:nth-child(3) { transition-delay: .1s; }

.tm-modal { position: fixed; inset: 0; backdrop-filter: blur(4px); }
.tm-modal-box { animation: tm-pop .3s cubic-bezier(.22, .8, .3, 1); }
@keyframes tm-pop { from { transform: scale(.9); opacity: 0; } }

原生 JS 弹窗逻辑(无第三方库):

card.querySelector('.tm-more').addEventListener('click', () => {
  modalName.textContent = card.querySelector('.tm-name').textContent;
  modalRole.textContent = card.querySelector('.tm-role').textContent;
  modalBio.textContent = card.querySelector('.tm-bio').textContent;
  modal.hidden = false;
  document.body.style.overflow = 'hidden';   // 锁定背景滚动
});
modal.addEventListener('click', e => { if (e.target === modal) close(); });

参数说明

参数默认值说明
社交链接级联延迟0 / .05s / .1s依次浮现的间隔,第 n 个延迟 (n-1)×.05s
头像放大scale(1.1)悬停时头像缩放,附带 -5deg 旋转
简介截断2 行-webkit-line-clamp 实现超出省略
弹窗动画0.3s缩放 + 淡入的组合动画
遮罩模糊blur(4px)弹窗打开时背景模糊强度

兼容性与性能

常见问题

Q: 成员人数很多,卡片会很多行吗? 网格使用 auto-fit + minmax(200px, 1fr) 自动换行,成员增减无需调整布局,横向空间足够时自动排多列。

Q: 社交链接可以放真实图标吗? 可以,把文字简写替换为 SVG 图标即可,悬停浮现与级联动画逻辑不变。

Q: 弹窗内容想更丰富(作品集、技能条)? 在 .tm-modal-box 内追加区块,数据来源可改为从 data-* 属性或 JS 对象读取,弹窗骨架无需改动。

Q: 可以商用吗? 可以,粤喵自研原创组件,免费商用无需署名,替换成员信息与头像即可用于团队页。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布:2026-09-01 · 最近更新:2026-09-01
  • 修改日志:2026-09-01 首次发布;2026-09-13 补充许可证与来源标注、复制按钮说明与法务页入口
  • 纠错:联系页面 / min@cactus.asia,2 个工作日内核实处理

常见问题

这个组件可以商用吗?

可以。本组件为粤喵自研原创,可免费用于个人和商业项目,无需署名。

浏览器兼容性如何?

支持所有现代浏览器(Chrome / Firefox / Safari / Edge 最新版本)。旧版 IE 不支持 CSS 动画相关特性。

怎么修改动画参数?

直接调整 CSS 中的 animation-duration(时长)、animation-timing-function(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核