【发布时间】:2022-01-24 20:15:27
【问题描述】:
我正在使用 Tailwind、react 和 GSAP 创建客户端徽标网格。客户端徽标路径通过 json 文件加载。客户端徽标列表很长,所以我认为让每个网格跨度(“单元格”)中的图像每隔几秒淡化为不同的图像会很有趣。
到目前为止,我的解决方案是映射所有徽标并将一定数量的徽标堆叠在一起作为绝对值,然后再移动到下一个 col 跨度,然后使用 col-span 的 id 对它们进行动画处理.我很难把注意力集中在这种方法上。尤其是负责任地更改网格列。
到目前为止的方法(一些伪代码一些irl代码):
const maxCols = 4
const maxRows = 3
const itemsPerRow = Math.floor( logosList.length()/maxCols/maxRows)
const isExtra = () =>{
if(logosList.length() % itemsPerRow >0) return true
else return false
}
const numRows = Math.floor( logosList.length()/maxCols )
export default function ClientImages(){
useEffect(() => {
for(i = 0; i <= i/maxCols/maxRows; i++ )
// to be figured out gsap method
gsap.to(`img-${i}`, {animate stuff})
},);
function setLogos(){
let subset
for ( index = 0; index == maxCols * maxRows; index++ ){
if(isExtra){
subset = logosList.slice(index, itemsPerRow + 1)
}
else subset = logosList.slice(index, itemsPerRow)
return(
<div className="col-span-1 relative" id={`clientColSpan-${index}`}>
{subset.map((logo) => {
<Image className='absolute' src={logo.src} yada yada yada />
})}
</div>
)
}
}
return(
<div className="grid grid-cols-2 md:grid-cols-4 2xl:grid-cols-6">
{setLogos}
</div>
)
}
这是我思考过程的直观表示
【问题讨论】:
标签: javascript reactjs next.js tailwind-css gsap