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

Next.js实现Testimonial外侧卡片平滑部分隐藏效果方案咨询

实现客户评价卡片外侧部分隐藏效果

问题背景

使用Next.js构建客户评价模块,其余功能已完成,需要实现外侧卡片部分隐藏的效果,现有代码未达成目标。

解决方案

通过调整容器的边距与溢出设置即可实现该效果,核心思路是让首尾卡片超出外层可视区域,再通过overflow-hidden裁切超出部分:

  1. 给原有flex容器套一个父容器,设置overflow-hidden来裁切超出内容
  2. 调整flex容器的左右负边距,让首尾卡片向外延伸
  3. 给flex容器添加对应值的左右内边距,保证中间卡片的布局不受影响

修改后的完整代码如下:

<div className="overflow-hidden max-w-6xl w-full">
  <div className='flex flex-row justify-start gap-x-[20px] overflow-x-auto no-scrollbar pointer-events-none w-full ml-[-20px] mr-[-20px] pl-[20px] pr-[20px]' ref={containerRef}>
    {testimonialData.map((testimonial, index) => (
      <div className={`relative flex flex-col max-w-[32%] min-w-[32%]`} id={`testimonial-${index}`}>
        <div className='testimonials-bg h-[220px] absolute top-0 w-full'></div>
        <div key={index} className="p-[20px] testimonials-border h-[220px] relative">
          <p className="text-white text-sm mb-[20px]">{testimonial.message}</p>
          <div className='absolute bottom-[20px] left-[20px] flex flex-row justify-start gap-x-[10px] items-center'>
            <div className='flex w-[48px] h-[48px] rounded-full justify-center items-center bg-[#D26783] text-white'>
              {testimonial.iconText}
            </div>
            <p className="text-white text-sm font-medium">{testimonial.customerName}</p>
          </div>
        </div>
      </div>
    ))}
  </div>
</div>

细节说明

  • 父容器的overflow-hidden是核心,负责裁切掉超出可视区域的卡片部分
  • ml-[-20px]和mr-[-20px]让flex容器向左右两侧延伸20px,使首尾卡片超出父容器范围
  • 对应添加的pl-[20px]和pr-[20px]保证内部卡片的起始布局位置不变,避免整体偏移
  • 若需要调整隐藏部分的宽度,只需同步修改负边距和内边距的数值即可(比如改成30px,隐藏部分会更宽)

内容的提问来源于stack exchange,提问作者ali abbas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:33:24