import { isBrowser } from '@/lib/utils' import { useEffect, useState } from 'react' /** * 一个swipe组件 * 垂直方向,定时滚动 * @param {*} param0 * @returns */ export function Swipe({ items }) { const [activeIndex, setActiveIndex] = useState(0) const handleClick = (item) => { if (isBrowser) { window.open(item?.url) } } useEffect(() => { const interval = setInterval(() => { setActiveIndex((activeIndex + 1) % items.length) }, 3000) return () => clearInterval(interval) }, [activeIndex, items.length]) return (
{items.map((item, index) => (
handleClick(item)} key={index} className={`absolute top-0 bottom-0 w-full h-full flex justify-center items-center line-clamp-1 transform transition-transform duration-500 ${index === activeIndex ? 'translate-y-0 slide-in' : 'translate-y-full slide-out' }`} > {item.title}
))}
) }; export default Swipe