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

首頁 > 語言 > JavaScript > 正文

javascript+canvas實現刮刮卡抽獎效果

2024-05-06 16:23:57
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了javascript+canvas實現刮刮卡抽獎效果的相關資料,需要的朋友可以參考下

運用canvas做的簡單刮刮卡效果,每次刷新可重新測試

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
  5. <style type="text/css"
  6. *{ margin:0; padding:0;}  
  7.  
  8. .cjbox{ margin:100px; height:80px; width:200px; background:#FFF; position:relative;} 
  9. #canvas{position:absolute; left:0px; top:0px;z-index:99;} 
  10. .sjmes{ position:absolute; left:0px; top:0px; height:80px; width:200px; text-align:center; font-size:40px; line-height:80px; z-index:9;} 
  11. </style> 
  12. <title>demo1</title> 
  13. </head> 
  14. <body>  
  15.  
  16. <div style="position:relative; margin:20px 100px; background:#0CF; height:400px; width:500px; margin:0 auto;"
  17. <div>刮刮卡簡單抽獎</div> 
  18. <div class="cjbox"
  19. <div class="sjmes" id="sjmes"></div> 
  20. <canvas width=200 height=80 id="canvas"></canvas>  
  21. </div> 
  22. </div>  
  23.  
  24. </body> 
  25. <script type="text/javascript"
  26. //init  
  27. var cjcon=["一等獎","二等獎","三等獎","謝謝參與"];//獎項設置 
  28. var cjper=[3,10,20,100];//獎項率,次數 
  29. /* 
  30. * sjmes 
  31. * @Author 透筆度(1530341234@qq.com)  
  32. * @param {cjcon} 所有獎項  
  33. */ 
  34. var percjcon=[]; 
  35. for(var i=0;i<cjper.length;i++){ 
  36. peic(cjper[i],i); 
  37. }; 
  38. function peic(len,ind){ 
  39. for(var i=0;i<len;i++){ 
  40. percjcon.push(cjcon[ind]); 
  41. };  
  42. }; 
  43. var sjmes = document.getElementById("sjmes"); 
  44. var numrandom=Math.floor(Math.random()*percjcon.length); 
  45. sjmes.innerHTML=percjcon[numrandom]; 
  46.  
  47. var opacityb=0.5;//透明百分比,參考值,什么程度出現提示 
  48. var backcolorb="#ffaaaa"
  49. var numl=200*80;//總像素個數 
  50. var nump;//出現backcolorb的個數 
  51. var opacitya;//透明百分比實際值 
  52.  
  53. var canvas = document.getElementById("canvas"); //獲取canvas  
  54. var context = canvas.getContext('2d'); //canvas追加2d畫圖 
  55. var flag = 0; //標志,判斷是按下后移動還是未按下移動 重要 
  56. var penwidth=20; //畫筆寬度 
  57. context.fillStyle="#faa"//填充的顏色 
  58. context.fillRect(0,0,200,80); //填充顏色 x y坐標 寬 高 
  59.  
  60. canvas.addEventListener('mousemove', onMouseMove, false); //鼠標移動事件  
  61. canvas.addEventListener('mousedown', onMouseDown, false); //鼠標按下事件  
  62. canvas.addEventListener('mouseup', onMouseUp, false); //鼠標抬起事件  
  63. var movex=-1; 
  64. var movey=-1; 
  65. var imgData;//imagedada容器 
  66. var rgbabox=[];//存放讀取后的rgba數據; 
  67. function onMouseMove(evt) { 
  68. if (flag == 1) {  
  69. movex=evt.layerX; 
  70. movey=evt.layerY;  
  71. context.fillStyle="#FF0000"
  72. context.beginPath(); 
  73. context.globalCompositeOperation="destination-out"
  74. context.arc(movex,movey,penwidth,0,Math.PI*2,true); //Math.PI*2是JS計算方法,是圓  
  75. context.closePath(); 
  76. context.fill(); 
  77. }  
  78. }  
  79. function onMouseDown(evt) {  
  80. flag = 1; //標志按下 
  81. }  
  82. function onMouseUp(evt) {  
  83. flag = 0; 
  84. //讀取像素數據 
  85. imgData=context.getImageData(0,0,200,80);//獲取當前畫布數據 
  86. //imgData.data.length 獲取圖片數據總長度,沒4個為一組存放rgba 
  87. for(var i=0; i<imgData.data.length;i+=4){ 
  88. var rval=imgData.data[i]; 
  89. var gval=imgData.data[i+1]; 
  90. var bval=imgData.data[i+2]; 
  91. var aval=imgData.data[i+3]; 
  92. var rgbaval=rval+"-"+gval+"-"+bval+"-"+aval; 
  93. rgbabox.push(rgbaval); 
  94. //end 
  95. for(var j=0;j<rgbabox.length;j++){ 
  96. //alert(rgbabox[j].split("-")[0]) 
  97. rgbabox[j]='#'+rgbToHex(rgbabox[j].split("-")[0],rgbabox[j].split("-")[1],rgbabox[j].split("-")[2]);  
  98. nump=countSubstr(rgbabox.join(","),backcolorb,true); 
  99. opacitya=(numl-nump)/numl; 
  100. if(opacitya>opacityb){ 
  101. alert("恭喜你獲得"+percjcon[numrandom]) 
  102. }else{} 
  103.  
  104. }  
  105. function rgbToHex(r, g, b) { return ((r << 16) | (g << 8) | b).toString(16); }//rgb轉為16進制 #xxx形式 
  106. function countSubstr(str,substr,isIgnore){//計算字符串出現子字符串的個數 
  107. var count; 
  108. var reg=""
  109. if(isIgnore==true){ 
  110. reg="/"+substr+"/gi";  
  111. }else
  112. reg="/"+substr+"/g"
  113. reg=eval(reg); 
  114. if(str.match(reg)==null){ 
  115. count=0; 
  116. }else
  117. count=str.match(reg).length; 
  118. return count; 
  119. //end 
  120. </script> 
  121. </html> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频在线播放| 久久视频这里只有精品| 国产极品精品在线观看| 国产精品视频公开费视频| 亚洲男人天堂古典| 亚洲男人天堂2024| 亚洲国产一区二区三区在线观看| 国产丝袜一区二区| 久久久久久久网站| 在线免费观看羞羞视频一区二区| 欧美高清视频免费观看| 久久久久久久久国产| 国产精品影院在线观看| 精品久久香蕉国产线看观看亚洲| 亚洲久久久久久久久久久| 91国产美女在线观看| 国产精品久久久久久亚洲调教| 日韩精品极品视频免费观看| 中文字幕国产亚洲| 亚洲第一中文字幕| 久久久久北条麻妃免费看| 日韩福利视频在线观看| 91免费国产视频| 亚洲精品综合精品自拍| 亚洲激情视频在线| 欧美日韩精品在线视频| 亚洲电影免费观看| 国产亚洲精品va在线观看| 国产精品福利观看| 久久精品国产久精国产一老狼| 久久久国产视频| 欧美国产亚洲精品久久久8v| 夜夜嗨av一区二区三区四区| 日本国产欧美一区二区三区| 欧美激情亚洲精品| 亚洲最大的网站| 久久久精品视频在线观看| 亚洲精品国产欧美| 啪一啪鲁一鲁2019在线视频| 色妞久久福利网| 亚洲黄页网在线观看| 亚洲白拍色综合图区| 欧美高清自拍一区| 国产a∨精品一区二区三区不卡| 久久久久久久亚洲精品| 91久久久久久国产精品| 国产成人精品久久二区二区| 国产精品成人在线| 国产成人精品免高潮在线观看| 亚洲电影av在线| 欧美日韩裸体免费视频| 中文字幕一区日韩电影| 欧美xxxwww| 亚洲精品一区中文字幕乱码| 国产亚洲精品激情久久| 亚洲free性xxxx护士白浆| 久久久精品久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲精品视频网上网址在线观看| 成人中文字幕在线观看| 日韩欧美在线字幕| 亚洲成人av中文字幕| 亚洲国产中文字幕久久网| 91九色视频在线| 亚洲欧洲在线看| 另类专区欧美制服同性| 日日狠狠久久偷偷四色综合免费| 亚洲男人天堂2024| 国产精品扒开腿做爽爽爽的视频| 日韩精品中文字幕在线观看| 少妇精69xxtheporn| 欧美网站在线观看| 亚洲天堂免费视频| 亚洲国产91精品在线观看| 久久久免费精品| 国产成人在线播放| 欧美肥臀大乳一区二区免费视频| 欧美性生交大片免费| 66m—66摸成人免费视频| 日韩精品极品在线观看播放免费视频| 亚洲国产精品成人va在线观看| 欧美在线www| 亚洲精品国产电影| 欧美黑人一区二区三区| 欧美性xxxx极品hd满灌| 亚洲精品视频二区| 日本sm极度另类视频| 午夜伦理精品一区| 日韩av免费在线| 久久国产精品久久久久久久久久| 亚洲视频国产视频| 国产精品91久久| 亚洲视频欧洲视频| 欧美日韩亚洲激情| 成人午夜在线影院| 久久久99久久精品女同性| 久久久999国产精品| 国自产精品手机在线观看视频| 亚洲成人精品视频在线观看| 国产99在线|中文| 国产精品久久久久久久av电影| 国产美女精品视频免费观看| 欧美性在线观看| 97久久精品人人澡人人爽缅北| 亚洲欧美制服综合另类| 亚洲欧洲黄色网| 久久久久久国产免费| 亚洲黄色www| 国产精彩精品视频| 国产精品夜间视频香蕉| 成人av在线亚洲| 97人人模人人爽人人喊中文字| 欧美精品xxx| 中文字幕亚洲欧美一区二区三区| 精品久久久久久久久久久久久久| 国产精品狠色婷| 欧美日本亚洲视频| 好吊成人免视频| 午夜精品福利电影| 一区二区在线视频播放| 久久精品中文字幕| 亚洲一区二区三区在线免费观看| 亚洲国产精品久久久| 国产主播喷水一区二区| 精品国内自产拍在线观看| 日韩电影在线观看永久视频免费网站| 欧美成人sm免费视频| 国产在线一区二区三区| 精品一区电影国产| 亚洲人成在线观看| 亚洲成人激情在线| 国产日韩欧美在线视频观看| 最近2019中文字幕大全第二页| 国产精品91在线| 国色天香2019中文字幕在线观看| 国外成人在线直播| 欧美精品一区在线播放| 日韩国产欧美区| 日韩一区二区三区国产| 亚洲第一网中文字幕| 欧美午夜电影在线| 亚洲欧美中文日韩在线v日本| 黑人与娇小精品av专区| 欧美大片欧美激情性色a∨久久| 久久亚洲一区二区三区四区五区高| 日本中文字幕不卡免费| 国产精品福利在线观看网址| 亚洲第一精品夜夜躁人人躁| 欧美色视频日本高清在线观看| 亚洲国产精品资源| 4k岛国日韩精品**专区| 91在线色戒在线| 欧美激情视频免费观看| 日韩精品久久久久久久玫瑰园| 91精品在线播放| 亚洲精品黄网在线观看| 久久五月情影视| 欧美日产国产成人免费图片| 亚洲欧洲成视频免费观看| 国产精品xxxxx| 91精品国产综合久久香蕉最新版| 日韩在线观看网站| 色与欲影视天天看综合网| 最近中文字幕mv在线一区二区三区四区|