评价卡片轮播(五星评分 + 自动播放切换 CSS 源码)

CSSJS 许可:自研原创

评价卡片轮播组件源码:五星评分、客户头像与身份信息、自动播放与圆点指示、鼠标悬停暂停,纯 CSS + 原生 JS 实现,适合官网首页与落地页口碑展示。

效果演示(真实可交互)

下方为评价卡片轮播:4 条真实感用户评价循环播放,每 3.8 秒自动切换。可点击左右箭头手动切换,也可点击底部圆点直达指定评价;鼠标移入轮播区域会暂停自动播放,移出后继续。

★★★★★
用了粤喵的玻璃拟态卡片后,我们后台面板的质感直接提升了一个档次,改造成本几乎为零,复制源码改个色就能上线。
林 林晓东 前端负责人 · 星链科技
★★★★★
组件站每个 demo 都真实可交互,比看静态截图直观太多了,参数说明也很详细,团队新人照着文档就能快速上手。
周 周雨桐 独立开发者 · 出海工具站
★★★★☆
自研实现、无第三方依赖这点很打动我,性能审计轻松通过。悬停和微交互的细节做得非常到位,值得长期关注。
陈 陈默 产品设计师 · 自由职业
★★★★★
把粤喵的按钮与卡片组件组合起来,三天就搭完了客户要的落地页,兼容性说明写得很清楚,省去大量踩坑时间。
何 何佳琪 增长工程师 · 拾光电商

完整代码

HTML 结构:轨道(track)内横向排列多张评价卡,视口(viewport)裁剪溢出部分,切换时通过 transform: translateX 移动轨道:

<div class="tm-viewport">
  <div class="tm-track">
    <figure class="tm-card">
      <div class="tm-stars">★★★★★</div>
      <blockquote class="tm-quote">用了粤喵的组件后,面板质感直接提升了一个档次。</blockquote>
      <figcaption class="tm-person">
        <span class="tm-avatar">林</span>
        <span class="tm-meta">
          <b>林晓东</b>
          <small>前端负责人 · 星链科技</small>
        </span>
      </figcaption>
    </figure>
    <!-- 更多评价卡片... -->
  </div>
</div>

核心 CSS:卡片固定宽度 100%,轨道弹性布局不换行,切换动画使用缓出贝塞尔曲线:

.tm-track { display: flex; transition: transform .5s cubic-bezier(.22, .8, .3, 1); }
.tm-card { flex: 0 0 100%; }
.tm-dot { width: 8px; height: 8px; border-radius: 999px; transition: all .3s ease; }
.tm-dot.active { width: 22px; background: linear-gradient(90deg, #6c8cff, #a96cff); }

原生 JS 实现(无第三方库):

let index = 0, timer = null;
function go(i) {
  index = (i + total) % total;
  track.style.transform = 'translateX(-' + (index * 100) + '%)';
  dots.forEach((d, k) => d.classList.toggle('active', k === index));
}
function restart() { clearInterval(timer); timer = setInterval(() => go(index + 1), 3800); }
wrap.addEventListener('mouseenter', () => clearInterval(timer));
wrap.addEventListener('mouseleave', restart);

参数说明

参数默认值说明
自动播放间隔3800ms两轮切换之间的停留时间
切换时长0.5s轨道滑动动画时长
缓动曲线cubic-bezier(.22,.8,.3,1)先快后慢的滑入手感
卡片宽度flex: 0 0 100%每张卡占满视口,一次展示一条
圆点宽度8px → 22px当前项拉长为胶囊形指示

兼容性与性能

常见问题

Q: 评价条数不固定,圆点会自动更新吗? 会,组件根据轨道内卡片数量动态生成圆点,增删评价卡后无需修改 JS。

Q: 如何让评价卡支持手势滑动? 可在此基础上监听 touchstart/touchmove/touchend 计算位移差,配合 transition 实现轻扫切换,桌面端可用鼠标拖拽模拟。

Q: 自动播放会打扰用户吗? 组件默认在鼠标悬停时暂停,移动端可改为首屏播放一次后停止,或增加播放/暂停按钮由用户控制。

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(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核