import { useEffect, useState } from 'react' import './flash.scss' import {CmsAd} from "@/api/cms/cmsAd/model"; import {getCmsAd} from "@/api/cms/cmsAd"; import { Swiper } from '@nutui/nutui-react-taro' interface Firework { id: number x: number y: number color: string } const MyPage = () => { const [item, setItem] = useState() const reload = () => { getCmsAd(366).then(data => { setItem(data) }) } const [fireworks, setFireworks] = useState([]) // 生成随机颜色 const getRandomColor = () => { const colors = [ '#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff', '#00ffff', '#ff9900', '#ff0099' ] return colors[Math.floor(Math.random() * colors.length)] } // 创建新烟花 const createFirework = () => { const firework: Firework = { id: Date.now(), x: Math.random() * 100, // 随机横向位置 (0-100%) y: Math.random() * 40, // 修改为随机纵向位置 (0-40%) color: getRandomColor() } setFireworks(prev => [...prev, firework]) // 1.5秒后移除烟花 setTimeout(() => { setFireworks(prev => prev.filter(f => f.id !== firework.id)) }, 1500) } useEffect(() => { reload(); // 初始创建更多烟花 for (let i = 0; i < 6; i++) { // 修改初始烟花数量为6个 createFirework() } // 缩短创建间隔,增加密度 const interval = setInterval(() => { createFirework() }, 500) // 修改为500ms创建一次 return () => clearInterval(interval) }, []) return ( <> {item?.imageList?.map((item) => ( ))}
{fireworks.map(firework => (
{/* 生成30个粒子 */} {Array.from({ length: 30 }).map((_, i) => (
))}
))}
) } export default MyPage