亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript HTML5 Canvas實現圓盤抽獎功能

2019-11-20 10:16:40
字體:
來源:轉載
供稿:網友

我們經常參加各種電商優惠活動,比如購買達到一定數額進行抽獎活動,在比如微信抽獎,淘寶抽獎,迅雷賺錢寶圓盤抽獎活動等。這些抽獎活動部分就是由HTML5的Canvas來制作的,今天就為大家分享一下如何使用HTML5的Canvas來制作圓盤抽獎功能。老規矩,先看下效果圖吧:

再來看看Canvas的幾個主要api:

 

全部源代碼如下:

<!DOCTYPE html><html lang="zh-cn"><head><meta charset="UTF-8"><title>HTML5 Canvas圓盤抽獎應用DEMO演示</title><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"><style>*{padding: 0px;margin: 0px;font-size: 16px;font-family: "Microsoft YaHei";}.xttblog_box{width: 300px;height: 300px;margin: 100px auto;position: relative; }.xttblog_box canvas{position: absolute;}#xttblog{background-color: white;border-radius: 100%;}#xttblog01,#xttblog03{left: 50px;top: 50px;z-index: 30;}#xttblog02{left: 75px;top: 75px;z-index: 20;}#xttblog{-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%;}.taoge_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;}</style><script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script><script>$(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'+')';  $('#xttblog').css('-o-transform',degValue);   //Opera  $('#xttblog').css('-ms-transform',degValue);   //IE瀏覽器  $('#xttblog').css('-moz-transform',degValue);   //Firefox  $('#xttblog').css('-webkit-transform',degValue);  //Chrome和Safari  $('#xttblog').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('xttblog');  var canvas01=document.getElementById('xttblog01');  var canvas03=document.getElementById('xttblog03');  var canvas02=document.getElementById('xttblog02');  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();  } }});</script></head><body><div class="xttblog_box"> <canvas id="xttblog" width="300px" height="300px">抱歉!瀏覽器不支持。</canvas> <canvas id="xttblog01" width="200px" height="200px">抱歉!瀏覽器不支持。</canvas> <canvas id="xttblog03" width="200px" height="200px">抱歉!瀏覽器不支持。</canvas> <canvas id="xttblog02" width="150px" height="150px">抱歉!瀏覽器不支持。</canvas> <button id="tupBtn" class="taoge_btn"></button></div><!-- 更改系統默認彈窗 --><script type="text/javascript">window.alert = function(str){ var shield = document.createElement("DIV"); shield.id = "shield"; shield.style.position = "absolute"; shield.style.left = "50%"; shield.style.top = "50%"; shield.style.width = "280px"; shield.style.height = "150px"; shield.style.marginLeft = "-140px"; shield.style.marginTop = "-110px"; shield.style.zIndex = "25"; var alertFram = document.createElement("DIV"); alertFram.id="alertFram"; alertFram.style.position = "absolute"; alertFram.style.width = "280px"; alertFram.style.height = "150px"; alertFram.style.left = "50%"; alertFram.style.top = "50%"; alertFram.style.marginLeft = "-140px"; alertFram.style.marginTop = "-110px"; alertFram.style.textAlign = "center"; alertFram.style.lineHeight = "150px"; alertFram.style.zIndex = "300"; strHtml = "<ul style=/"list-style:none;margin:0px;padding:0px;width:100%/">/n"; strHtml += " <li style=/"background:#626262;text-align:left;padding-left:20px;font-size:14px;font-weight:bold;height:25px;line-height:25px;border:1px solid #F9CADE;color:white/">[中獎提醒]</li>/n"; strHtml += " <li style=/"background:#787878;text-align:center;font-size:12px;height:95px;line-height:95px;border-left:1px solid #F9CADE;border-right:1px solid #F9CADE;color:#DCC722/">"+str+"</li>/n"; strHtml += " <li style=/"background:#626262;text-align:center;font-weight:bold;height:30px;line-height:25px; border:1px solid #F9CADE;/"><input type=/"button/" value=/"確 定/" onclick=/"doOk()/" style=/"width:80px;height:20px;background:#626262;color:white;border:1px solid white;font-size:14px;line-height:20px;outline:none;margin-top: 4px/"/></li>/n"; strHtml += "</ul>/n"; alertFram.innerHTML = strHtml; document.body.appendChild(alertFram); document.body.appendChild(shield); this.doOk = function(){  alertFram.style.display = "none";  shield.style.display = "none"; } alertFram.focus(); document.body.onselectstart = function(){return false;};}</script></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助。

原文地址:http://www.xttblog.com/?p=399

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲日韩国产| 亚洲欧美日韩中文在线制服| 国产欧美日韩91| 91精品国产91久久久久久吃药| 亚洲天堂色网站| 亚洲影院色在线观看免费| 欧美老女人www| 九九久久国产精品| 中国china体内裑精亚洲片| 91中文在线观看| 国产精品你懂得| 久久久久国产精品免费| 国产欧美日韩最新| 亚洲人成网站免费播放| 97久久超碰福利国产精品…| 亚洲欧美国内爽妇网| 欧美高清videos高潮hd| 91av网站在线播放| 国产精品一久久香蕉国产线看观看| 久久精品视频在线观看| 亚洲精品欧美一区二区三区| 成人亲热视频网站| 中文字幕av日韩| 久久久久久国产精品三级玉女聊斋| 亚洲一区二区三区四区视频| 国产精品久久久久久av福利软件| 欧美一区二区三区免费观看| 亚洲美女激情视频| 日韩影视在线观看| 国产91精品最新在线播放| 国产精品爽爽爽爽爽爽在线观看| 国产精品尤物福利片在线观看| 亚洲欧美制服中文字幕| 亚洲国产高清福利视频| 欧美一区二区大胆人体摄影专业网站| 国产丝袜一区视频在线观看| 亚洲色图激情小说| 亚洲a∨日韩av高清在线观看| 欧美在线激情视频| 日韩欧美在线看| 欧美日韩高清区| 91综合免费在线| 日日狠狠久久偷偷四色综合免费| 久久全球大尺度高清视频| 性欧美视频videos6一9| 欧美精品在线网站| 国产美女精品视频| 国产精品久久久久久久久久小说| 精品国产乱码久久久久久虫虫漫画| 欧美日韩另类视频| 欧美午夜视频在线观看| 国产精品九九久久久久久久| 一本大道久久加勒比香蕉| 国产精品99久久久久久久久久久久| 91精品啪在线观看麻豆免费| 国产精品老女人精品视频| 久久国产精品电影| 亚洲一区第一页| 国产精品99久久99久久久二8| 国产xxx69麻豆国语对白| 国产精品www网站| 欧美日本中文字幕| 91久久精品国产| 91超碰caoporn97人人| 欧美精品久久久久久久久久| 久久午夜a级毛片| 5566日本婷婷色中文字幕97| 欧美野外猛男的大粗鳮| 538国产精品视频一区二区| 91麻豆桃色免费看| 国产精品爽爽ⅴa在线观看| 中文字幕欧美日韩在线| 日韩精品在线观看网站| 国产精品91久久久久久| 精品久久久久久亚洲国产300| 日韩中文视频免费在线观看| 在线免费看av不卡| 精品久久久一区二区| 成人黄色在线免费| 日韩视频在线观看免费| 欧美国产亚洲视频| 亚洲人成77777在线观看网| 国产经典一区二区| 日韩免费av片在线观看| 国产精品吊钟奶在线| www.日韩不卡电影av| 91av视频在线免费观看| 国内精品久久久久影院优| 国产一区深夜福利| 亚洲自拍偷拍区| 97视频在线观看免费| 98精品国产自产在线观看| 亚洲性夜色噜噜噜7777| 亚洲免费av片| 亚洲资源在线看| 91精品国产综合久久男男| 亚洲精品99久久久久| 日韩中文在线观看| 91av视频在线免费观看| 欧美高清在线视频观看不卡| 欧美大胆a视频| 国产精品极品美女在线观看免费| 亚洲国产成人久久综合一区| www.欧美精品一二三区| 91中文在线视频| 国产精品视频久久| 国产视频精品自拍| 国产成人a亚洲精品| 亚洲第一综合天堂另类专| 国产日本欧美在线观看| 国产精品丝袜久久久久久高清| 久久视频在线免费观看| 亚洲色图综合久久| 91精品久久久久久久久久久久久久| 最近2019年中文视频免费在线观看| 黑人与娇小精品av专区| 亚洲性线免费观看视频成熟| 欧美一级淫片丝袜脚交| 91精品国产自产在线老师啪| 欧美高清不卡在线| 成人一区二区电影| 欧美精品九九久久| 欧美成人高清视频| 日韩高清有码在线| 成人国产亚洲精品a区天堂华泰| 97在线视频国产| 色播久久人人爽人人爽人人片视av| 成人黄色在线观看| 欧美精品一区在线播放| 日韩电影大片中文字幕| 国色天香2019中文字幕在线观看| 欧美大片在线看免费观看| 日韩精品一区二区视频| 国产精品香蕉国产| 亚洲色图50p| 日韩福利视频在线观看| 精品亚洲一区二区| 91天堂在线视频| 夜夜躁日日躁狠狠久久88av| 欧美裸体xxxxx| 色偷偷888欧美精品久久久| 欧美夫妻性生活视频| 在线播放国产一区中文字幕剧情欧美| 成人午夜黄色影院| 中文字幕久久亚洲| 日韩中文有码在线视频| 色av中文字幕一区| 国语自产精品视频在线看抢先版图片| 92看片淫黄大片看国产片| 亚洲第一福利视频| 欧美成人精品三级在线观看| 欧洲精品在线视频| 国产日韩中文字幕| 国产午夜精品久久久| 亚洲三级黄色在线观看| 国产九九精品视频| 日韩中文字幕免费视频| 5278欧美一区二区三区| 中文字幕欧美日韩精品| 亚洲japanese制服美女| 国产不卡在线观看| 日韩免费视频在线观看| 色噜噜狠狠狠综合曰曰曰88av| 久久成人精品视频|