摘要:圓盤抽獎應用頁面圓盤抽獎應用演示抱歉瀏覽器不支持。
HTML5 Canvas圓盤抽獎應用DEMO html頁面
CSS頁面代碼段HTML5 Canvas圓盤抽獎應用DEMO演示
*{ padding: 0px; margin: 0px; font-size: 16px; font-family: "Microsoft YaHei"; } .turnplate_box{ width: 300px; height: 300px; margin: 100px auto; position: relative; } .turnplate_box canvas{ position: absolute; } #myCanvas{ background-color: white; border-radius: 100%; } #myCanvas01,#myCanvas03{ left: 50px; top: 50px; z-index: 30; } #myCanvas02{ left: 75px; top: 75px; z-index: 20; } #myCanvas{ -o-transform: transform 6s; -ms-transform: transform 6s; -moz-transform: transform 6s; -webkit-transform: transform 6s; transition: transform 6s; -o-transform-origin: 50% 50%; -ms-transform-origin: 50% 50%; -moz-transform-origin: 50% 50%; -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; } .turnplatw_btn{ width: 60px; height: 60px; left: 120px; top: 120px; border-radius: 100%; position: absolute; cursor: pointer; border: none; background: transparent; outline: none; z-index: 40; }JS
$(document).ready(function(){ //旋轉角度 var angles; //可抽獎次數 var clickNum = 5; //旋轉次數 var rotNum = 0; //中獎公告 var notice = null; //轉盤初始化 var color = ["#626262","#787878","rgba(0,0,0,0.5)","#DCC722","white","#FF4350"]; var info = ["謝謝參與"," 1000"," 10"," 500"," 100"," 4999"," 1"," 20"]; var info1 = ["再接再厲"," 元"," 元"," 淘金幣"," 元"," 淘金幣"," 元"," 淘金幣"] canvasRun(); $("#tupBtn").bind("click",function(){ if (clickNum >= 1) { //可抽獎次數減一 clickNum = clickNum-1; //轉盤旋轉 runCup(); //轉盤旋轉過程“開始抽獎”按鈕無法點擊 $("#tupBtn").attr("disabled", true); //旋轉次數加一 rotNum = rotNum + 1; //“開始抽獎”按鈕無法點擊恢復點擊 setTimeout(function(){ alert(notice); $("#tupBtn").removeAttr("disabled", true); },6000); } else{ alert("親,抽獎次數已用光!"); } }); //轉盤旋轉 function runCup(){ probability(); var degValue = "rotate("+angles+"deg"+")"; $("#myCanvas").css("-o-transform",degValue); //Opera $("#myCanvas").css("-ms-transform",degValue); //IE瀏覽器 $("#myCanvas").css("-moz-transform",degValue); //Firefox $("#myCanvas").css("-webkit-transform",degValue); //Chrome和Safari $("#myCanvas").css("transform",degValue); } //各獎項對應的旋轉角度及中獎公告內容 function probability(){ //獲取隨機數 var num = parseInt(Math.random()*(7 - 0 + 0) + 0); //概率 if ( num == 0 ) { angles = 2160 * rotNum + 1800; notice = info[0] + info1[0]; } //概率 else if ( num == 1 ) { angles = 2160 * rotNum + 1845; notice = info[7] + info1[7]; } //概率 else if ( num == 2 ) { angles = 2160 * rotNum + 1890; notice = info[6] + info1[6]; } //概率 else if ( num == 3 ) { angles = 2160 * rotNum + 1935; notice = info[5] + info1[5]; } //概率 else if ( num == 4 ) { angles = 2160 * rotNum + 1980; notice = info[4] + info1[4]; } //概率 else if ( num == 5 ) { angles = 2160 * rotNum + 2025; notice = info[3] + info1[3]; } //概率 else if ( num == 6 ) { angles = 2160 * rotNum + 2070; notice = info[2] + info1[2]; } //概率 else if ( num == 7 ) { angles = 2160 * rotNum + 2115; notice = info[1] + info1[1]; } } //繪制轉盤 function canvasRun(){ var canvas=document.getElementById("myCanvas"); var canvas01=document.getElementById("myCanvas01"); var canvas03=document.getElementById("myCanvas03"); var canvas02=document.getElementById("myCanvas02"); var ctx=canvas.getContext("2d"); var ctx1=canvas01.getContext("2d"); var ctx3=canvas03.getContext("2d"); var ctx2=canvas02.getContext("2d"); createCircle(); createCirText(); initPoint(); //外圓 function createCircle(){ var startAngle = 0;//扇形的開始弧度 var endAngle = 0;//扇形的終止弧度 //畫一個8等份扇形組成的圓形 for (var i = 0; i< 8; i++){ startAngle = Math.PI*(i/4-1/8); endAngle = startAngle+Math.PI*(1/4); ctx.save(); ctx.beginPath(); ctx.arc(150,150,100, startAngle, endAngle, false); ctx.lineWidth = 120; if (i%2 == 0) { ctx.strokeStyle = color[0]; }else{ ctx.strokeStyle = color[1]; } ctx.stroke(); ctx.restore(); } } //各獎項 function createCirText(){ ctx.textAlign="start"; ctx.textBaseline="middle"; ctx.fillStyle = color[3]; var step = 2*Math.PI/8; for ( var i = 0; i < 8; i++) { ctx.save(); ctx.beginPath(); ctx.translate(150,150); ctx.rotate(i*step); ctx.font = " 20px Microsoft YaHei"; ctx.fillStyle = color[3]; ctx.fillText(info[i],-30,-115,60); ctx.font = " 14px Microsoft YaHei"; ctx.fillText(info1[i],-30,-95,60); ctx.closePath(); ctx.restore(); } } function initPoint(){ //箭頭指針 ctx1.beginPath(); ctx1.moveTo(100,24); ctx1.lineTo(90,62); ctx1.lineTo(110,62); ctx1.lineTo(100,24); ctx1.fillStyle = color[5]; ctx1.fill(); ctx1.closePath(); //中間小圓 ctx3.beginPath(); ctx3.arc(100,100,40,0,Math.PI*2,false); ctx3.fillStyle = color[5]; ctx3.fill(); ctx3.closePath(); //小圓文字 ctx3.font = "Bold 20px Microsoft YaHei"; ctx3.textAlign="start"; ctx3.textBaseline="middle"; ctx3.fillStyle = color[4]; ctx3.beginPath(); ctx3.fillText("開始",80,90,40); ctx3.fillText("抽獎",80,110,40); ctx3.fill(); ctx3.closePath(); //中間圓圈 ctx2.beginPath(); ctx2.arc(75,75,75,0,Math.PI*2,false); ctx2.fillStyle = color[2]; ctx2.fill(); ctx2.closePath(); } } });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81076.html
摘要:圓盤抽獎應用頁面圓盤抽獎應用演示抱歉瀏覽器不支持。 HTML5 Canvas圓盤抽獎應用DEMO html頁面 HTML5 Canvas圓盤抽獎應用DEMO演示 抱歉!瀏覽器不支持。 抱歉!瀏覽器不支持。 抱歉!瀏覽器...
摘要:圓盤抽獎應用頁面圓盤抽獎應用演示抱歉瀏覽器不支持。 HTML5 Canvas圓盤抽獎應用DEMO html頁面 HTML5 Canvas圓盤抽獎應用DEMO演示 抱歉!瀏覽器不支持。 抱歉!瀏覽器不支持。 抱歉!瀏覽器...
摘要:自己很菜,不可否認。所以上周日試試水,看看自己能否寫個圓盤抽獎的。效果圖代碼外部圓內部園請輸入外數字開始基礎旋轉的圓以自己的寬度的一半為,以父盒子的高度一半為,作為旋轉點。 自己很菜,不可否認。所以上周日試試水,看看自己能否寫個圓盤抽獎的demo。// github L6zt開發思路 布局 css rotate 布局; 抽獎過渡效果,采用css3 transition; 動態計算抽獎...
閱讀 3724·2021-11-24 10:23
閱讀 2771·2021-09-06 15:02
閱讀 1274·2021-08-23 09:43
閱讀 2351·2019-08-30 15:44
閱讀 3045·2019-08-30 13:18
閱讀 779·2019-08-23 16:56
閱讀 1743·2019-08-23 16:10
閱讀 536·2019-08-23 15:08