Next.js实现Testimonial外侧卡片平滑部分隐藏效果方案咨询
实现客户评价卡片外侧部分隐藏效果
问题背景
使用Next.js构建客户评价模块,其余功能已完成,需要实现外侧卡片部分隐藏的效果,现有代码未达成目标。
解决方案
通过调整容器的边距与溢出设置即可实现该效果,核心思路是让首尾卡片超出外层可视区域,再通过overflow-hidden裁切超出部分:
- 给原有flex容器套一个父容器,设置
overflow-hidden来裁切超出内容 - 调整flex容器的左右负边距,让首尾卡片向外延伸
- 给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
相关产品推荐
相关产品推荐

