---
title: "picker wheel"
url: "https://blog.cricheroes.com/picker-wheel/"
date: "2026-05-11T14:15:22+05:30"
modified: "2026-05-12T17:47:42+05:30"
author:
  name: "Manan Joshi"
  url: "https://blog.cricheroes.com/"
word_count: 1895
reading_time: "10 min read"
summary: "Picker Wheel
    Spin to pick a name, player, or random choice
  
        
        Use your last wheel?
        &mdash;
        
          
        
        Restore
    
        Pick a cricket temp..."
description: "Use the free CricHeroes picker wheel to spin and pick a name, player, batting order, or any random choice in seconds."
keywords: "Picker Wheel"
language: "en"
schema_type: "WebPage"
---

# picker wheel

_Published: May 11, 2026_  
_Author: Manan Joshi_  

'; for (var i = 0; i ' + esc(h.name) + '#' + h.rank + ''; } historyEl.innerHTML = html; } function animateHistoryPopLast(onDone) { var pills = historyEl.querySelectorAll('.ch-history-pill'); if (pills.length === 0 || prefersReducedMotion) { onDone(); return; } pills[pills.length - 1].classList.add('ch-exit'); setTimeout(onDone, 200); } /* ─── SOUND ─── */ function setSoundUI() { soundOnIco.style.display = soundOn ? '' : 'none'; soundOffIco.style.display = soundOn ? 'none' : ''; soundBtn.classList.toggle('muted', !soundOn); soundBtn.title = soundOn ? 'Mute sound' : 'Unmute sound'; } function initAudio() { if (audioCtx) { return; } try { var AC = window.AudioContext || window.webkitAudioContext; if (AC) { audioCtx = new AC(); } } catch(e) {} } function stopTick() { try { if (tickSrc) { tickSrc.stop(); tickSrc = null; } tickGain = null; } catch(e) {} } function startTick() { if (!audioCtx || !soundOn) { return; } stopTick(); try { var sr = audioCtx.sampleRate; var buf = audioCtx.createBuffer(1, sr*3, sr); var d = buf.getChannelData(0); var iv = Math.floor(sr/90); for (var i = 0; i = 5; function commitHistory() { spinHistory.unshift({ name: winner, color: winColor, rank: spinCount }); if (spinHistory.length > 5) { spinHistory.pop(); } renderHistory(); } if (willOverflow) { animateHistoryPopLast(commitHistory); } else { commitHistory(); } setResultWinner('Selected'+esc(winner)+''); haptic([60, 40, 80]); if (removeMode) { if (originalNames.length === 0) { originalNames = names.slice(); } lastRemoved = { index: seg, name: winner }; names.splice(seg, 1); renderList(); drawWheel(); saveSession(); } setTimeout(function() { openModal(winner, winColor, spinCount); }, 380); } function openModal(winner, winColor, rank) { mName.textContent = winner; var tpl = TEMPLATES[activeTpl]; mLabel.textContent = tpl ? tpl.label : 'Selected'; if (removeMode) { var ordinals = ['1st','2nd','3rd']; mRankText.textContent = (rank <rect height="13" rx="2" ry="2" width="13" x="9" y="9"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path> Copy result'; spinAgain.disabled = (removeMode && names.length === 0); modal.classList.add('show'); spawnConfetti(); winSound(); } function closeModal() { modal.classList.remove('show'); if (removeMode && names.length === 0) { alldoneEl.classList.add('show'); spinBtn.disabled = true; } updateOnboardingState(); } /* ─── CONFETTI ─── */ function spawnConfetti() { if (prefersReducedMotion) { return; } var old = document.getElementById('ch-pw-confetti-overlay'); if (old) { old.parentNode.removeChild(old); } var overlay = document.createElement('div'); overlay.id = 'ch-pw-confetti-overlay'; overlay.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:2147483647;overflow:hidden;'; document.body.appendChild(overlay); var cols = ['#e21c28','#18958f','#f26472','#43dbd3','#ca1c22','#24bcb5','#103c3a','#ffffff']; var maxEnd = 0; for (var i = 0; i 0.45?'50%':'2px')+';animation:chCfFall '+dur+'s '+dl+'s linear forwards;'; overlay.appendChild(el); var thisEnd = (dur + dl) * 1000; if (thisEnd > maxEnd) { maxEnd = thisEnd; } } setTimeout(function() { if (overlay.parentNode) { overlay.parentNode.removeChild(overlay); } }, maxEnd + 300); } /* ─── COPY ─── */ function copyResult() { var winner = copyBtn.getAttribute('data-winner'); var label = copyBtn.getAttribute('data-label'); var text = 'ud83cudfd1 ' + winner + ' u2014 ' + label + 'nPicked on CricHeroes Picker Wheel: ' + window.location.href; if (navigator.clipboard) { navigator.clipboard.writeText(text).then(showCopied).catch(function() { fallbackCopy(text); }); } else { fallbackCopy(text); } } function fallbackCopy(text) { var ta = document.createElement('textarea'); ta.value = text; ta.style.cssText = 'position:fixed;top:-9999px;left:-9999px;opacity:0;'; document.body.appendChild(ta); ta.focus(); ta.select(); try { document.execCommand('copy'); } catch(e) {} document.body.removeChild(ta); showCopied(); } function showCopied() { copyBtn.classList.add('copied'); copyBtn.innerHTML = '<svg fill="none" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" viewbox="0 0 24 24" width="14"><polyline points="20 6 9 17 4 12"></polyline></svg> Copied!'; setTimeout(function() { copyBtn.classList.remove('copied'); copyBtn.innerHTML = '<svg fill="none" height="14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewbox="0 0 24 24" width="14"><rect height="13" rx="2" ry="2" width="13" x="9" y="9"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg> Copy result'; }, 2500); } function resetAfterAllDone() { if (originalNames.length > 0) { names = originalNames.slice(); } originalNames = []; spinHistory = []; spinCount = 0; hasSpunOnce = false; renderList(); drawWheel(); renderHistory(); alldoneEl.classList.remove('show'); spinBtn.disabled = false; resetResultCard(); updateOnboardingState(); } /* ─── EVENT BINDINGS ─── */ spinBtn.addEventListener('click', startSpin); /* Hub (centre spin button) — tracked by GTM via ID: #ch-pw-hub */ hub.addEventListener('click', startSpin); /* Canvas area click — does NOT get a GTM class (same as hub, not a separate user action) */ wheelWrap.addEventListener('click', function(e) { if (e.target === hub || hub.contains(e.target)) { return; } startSpin(); }); addBtn.addEventListener('click', addName); clearBtn.addEventListener('click', clearAll); shuffleBtn.addEventListener('click', shuffleNames); nameInput.addEventListener('keydown', function(e) { if (e.key === 'Enter') { addName(); } }); nameInput.addEventListener('input', hideInputHint); document.getElementById('ch-pw-closebtn').addEventListener('click', closeModal); /* Spin again — tracked by GTM via class: .gtm-wheel-modal-spin */ spinAgain.addEventListener('click', function() { closeModal(); setTimeout(startSpin, 280); }); modal.addEventListener('click', function(e) { if (e.target === modal) { closeModal(); } }); copyBtn.addEventListener('click', copyResult); alldoneReset.addEventListener('click', resetAfterAllDone); soundBtn.addEventListener('click', function() { soundOn = !soundOn; setSoundUI(); }); removeToggle.addEventListener('change', function() { removeMode = removeToggle.checked; if (!removeMode) { if (originalNames.length > 0) { names = originalNames.slice(); originalNames = []; renderList(); drawWheel(); } alldoneEl.classList.remove('show'); spinBtn.disabled = false; } }); var chips = document.querySelectorAll('#ch-pw-tpl-row .ch-tpl-chip'); for (var ti = 0; ti


---

_View the original post at: [https://blog.cricheroes.com/picker-wheel/](https://blog.cricheroes.com/picker-wheel/)_  
_Served as markdown by [Third Audience](https://github.com/third-audience) v3.5.3_  
_Generated: 2026-05-12 12:17:42 UTC_  
