您將需要從“添加粒子”(add particle)函數中分離出動畫循環。所有你需要做的動畫功能是清除畫布和更新和繪制對象。添加到數組應該是一個單獨的函數。每次你點擊這個按鈕,你就會再次調用requestAnimationFrame,從而編譯它的效果。 function drawNewParticle(){ //Generate particle and add to array of particles generateParticle = particleArray.push (new particle( Math.random() * 1014, Math.random() * 758, 1, 1, 10, 'hsla(0, 0%, 0%, 1)' ) )} function animate() { ctx.clearRect(0, 0, 1024, 768) for(i=0; i< clickCount; i++){ particleArray[i].update() particleArray[i].drawParticle() } requestAnimationFrame(animate)}animate();