HTML5幸運(yùn)轉(zhuǎn)盤代碼讓你創(chuàng)建自己的在線游戲或網(wǎng)站中的互動元素更加方便和有趣。幸運(yùn)轉(zhuǎn)盤是一種流行的互動游戲,現(xiàn)在的HTML5技術(shù)已經(jīng)可以輕松創(chuàng)建這樣的游戲了。下面是一個簡單的HTML5幸運(yùn)轉(zhuǎn)盤代碼實(shí)例:
<canvas id="myCanvas" width="500" height="500"></canvas> <script> // 獲取canvas元素 var canvas = document.getElementById("myCanvas"); // 獲取繪圖上下文 var context = canvas.getContext("2d"); // 將canvas坐標(biāo)系設(shè)置在中心點(diǎn)處 context.translate(canvas.width / 2, canvas.height / 2); // 定義轉(zhuǎn)盤的物品 var items = [ "一等獎", "二等獎", "三等獎", "謝謝參與" ]; // 計(jì)算每個物品對應(yīng)的角度 var angle = (2 * Math.PI) / items.length; // 繪制每個物品 for (var i = 0; i< items.length; i++) { context.beginPath(); //填充顏色隨機(jī) context.fillStyle = "#" + ((Math.random() * 0xffffff)<< 0).toString(16); context.arc(0, 0, canvas.width / 2 - 50, i * angle, (i + 1) * angle); context.lineTo(0, 0); context.fill(); context.save(); context.translate(canvas.width / 2 - 50, 0); context.rotate((i + 0.5) * angle); context.textAlign = "right"; context.fillStyle = "#000"; context.font = "20px Arial"; context.fillText(items[i], -10, 0); context.restore(); } // 開啟抽獎 var btn = document.getElementById("btn"); btn.onclick = function() { // 隨機(jī)角度 var rad = Math.random() * 2 * Math.PI; // 計(jì)算旋轉(zhuǎn)圈數(shù) var round = Math.floor(Math.random() * 6 + 4); var totalAngle = round * 2 * Math.PI + rad; // 慢慢減速的效果 var deceleration = 0.95; var speed = 0.1; var timer = setInterval(function() { // 每次減少速度 speed *= deceleration; // 計(jì)算當(dāng)前旋轉(zhuǎn)角度 var currentAngle = totalAngle / speed; // 判斷是否到達(dá)目標(biāo)角度 if (currentAngle<= angle) { clearInterval(timer); alert(items[Math.floor((items.length - 1) - currentAngle / angle)]); } else { context.clearRect(-canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height); context.rotate(angle); drawWheel(); } }, 20); } // 繪制轉(zhuǎn)盤 function drawWheel() { for (var i = 0; i< items.length; i++) { context.save(); context.rotate(i * angle); context.beginPath(); context.moveTo(0, 0); context.arc(0, 0, canvas.width / 2 - 20, 0, angle); context.lineWidth = 10; context.strokeStyle = "#fff"; context.stroke(); context.restore(); } } drawWheel(); </script>
這個HTML5幸運(yùn)轉(zhuǎn)盤代碼包含了繪制轉(zhuǎn)盤、設(shè)置每個物品對應(yīng)的角度、隨機(jī)抽獎等功能。在代碼中,我們使用canvas元素來繪制轉(zhuǎn)盤,并設(shè)置物品的填充顏色、旋轉(zhuǎn)的角度、文字等。在抽獎時,我們計(jì)算旋轉(zhuǎn)的圈數(shù)和到達(dá)目標(biāo)角度時的物品,給用戶一種舒適的旋轉(zhuǎn)體驗(yàn)。