Spin Wheel
body { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; margin: 0; } .wheel { width: 200px; height: 200px; border-radius: 50%; background: conic-gradient( from 0deg, red 0deg 60deg, yellow 60deg 120deg, green 120deg 180deg, blue 180deg 240deg, indigo 240deg 300deg, violet 300deg 360deg ); transition: transform 3s ease-out; } let wheel = document.getElementById('wheel'); let spinning = false; function spinWheel() { if (!spinning) { let randomRotation = Math.floor(Math.random() * 360) + 720; // Rotate between 720 to 1080 degrees wheel.style.transform = `rotate(${randomRotation}deg)`; spinning = true; // Reset spinning after animation completes setTimeout(() => { wheel.style.transition = 'none'; // Disable transition for instant reset wheel.style.transform = 'rotate(0deg)'; void wheel.offsetWidth; // Trigger reflow for the style to take effect wheel.style.transition = 'transform 3s ease-out'; // Re-enable transition spinning = false; }, 3000); } }