js+canvas實(shí)現(xiàn)刮刮獎(jiǎng)功能
更新時(shí)間:2020年09月13日 10:01:10 作者:暗鎖讀客
這篇文章主要為大家詳細(xì)介紹了js+canvas實(shí)現(xiàn)刮刮獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了js+canvas實(shí)現(xiàn)刮刮獎(jiǎng)的具體代碼,供大家參考,具體內(nèi)容如下
1.實(shí)現(xiàn)了PC端的刮刮獎(jiǎng)效果
2.使用了canvas的文本,像素操作,合成,繪制圖形,隨機(jī)數(shù)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>刮刮獎(jiǎng)</title> <style type="text/css"> * { margin: 0; padding: 0; } .box { width: 500px; height: 500px; margin: 0 auto; position: relative; background: #00BFFF; } #prize { width: 300px; height: 100px; position: absolute; top: 50%; left: 50%; margin: -50px 0 0 -150px; background: #fff; font-family: "微軟雅黑"; font-size: 40px; text-align: center; line-height: 100px; -webkit-user-select: none; } #myCanvas { position: absolute; top: 50%; left: 50%; margin: -50px 0 0 -150px; } </style> </head> <body> <div class="box"> <div id="prize"></div> <canvas id="myCanvas" width="300" height="100"></canvas> </div> </body> <script type="text/javascript"> //獲取對(duì)象 var textArr = ["一等獎(jiǎng)", "二等獎(jiǎng)", "三等獎(jiǎng)", "謝謝惠顧", "再來一次"]; var prize = document.getElementById("prize"); var num = Math.random() * 100; if (num <= 60) { prize.innerText = textArr[3]; } else if (num <= 70) { prize.innerText = textArr[4]; } else if (num <= 80) { prize.innerText = textArr[2]; } else if (num <= 90) { prize.innerText = textArr[1]; } else if (num <= 100) { prize.innerText = textArr[0]; } var myCanvas = document.getElementById("myCanvas"); // 搭建環(huán)境 var cxt = myCanvas.getContext("2d"); cxt.globalAlpha = 1; cxt.fillStyle = "#ccc"; cxt.fillRect(0, 0, 300, 100); var txt = "刮刮獎(jiǎng)"; cxt.fillStyle = "#000"; cxt.font = "30px 微軟雅黑"; cxt.textAlign = "center"; cxt.textBaseline = "middle"; cxt.fillText(txt, 150, 50, 300); var mX, mY; var flag = false; myCanvas.onmousedown = function(e) { flag = true; mX = e.offsetX; mY = e.offsetY; drawArc(mX, mY); } document.body.onmousemove = function(e) { if (flag == true) { mX = e.offsetX; mY = e.offsetY; drawArc(mX, mY); } } document.body.onmouseup = function() { flag = false; sayPrize(); } function drawArc(x, y) { cxt.globalCompositeOperation = "destination-out"; //相交部分不顯示 cxt.beginPath(); cxt.fillStyle = "white"; cxt.moveTo(x, y); cxt.arc(x, y, 10, 0, 2 * Math.PI); cxt.fill(); } function sayPrize() { var myImg = cxt.getImageData(70, 30, 160, 40); // var myImg = cxt.getImageData(93, 37, 40, 30); // 設(shè)置像素點(diǎn)的顏色 var num = 0; var max = myImg.data.length / 4; for (var i = 0; i < myImg.data.length; i += 4) { if (myImg.data[i + 3] <= 200) { num++; } } //2/3*myImg.data.length/4 if (num >= max * 0.6) { alert("恭喜您,獲得:" + prize.innerText); } } </script> </html>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- js canvas實(shí)現(xiàn)寫字動(dòng)畫效果
- JS+canvas繪制的動(dòng)態(tài)機(jī)械表動(dòng)畫效果
- JS基于HTML5的canvas標(biāo)簽實(shí)現(xiàn)炫目的色相球動(dòng)畫效果實(shí)例
- javascript+HTML5的Canvas實(shí)現(xiàn)Lab單車動(dòng)畫效果
- js+canvas實(shí)現(xiàn)畫板功能
- js實(shí)現(xiàn)貪吃蛇游戲 canvas繪制地圖
- 使用js和canvas實(shí)現(xiàn)時(shí)鐘效果
- javascript使用canvas實(shí)現(xiàn)餅狀圖效果
- javascript canvas實(shí)現(xiàn)簡易時(shí)鐘例子
- JS Canvas接口和動(dòng)畫效果大全
相關(guān)文章
javascript中break,continue和return語句用法小結(jié)
break,continue和return這三個(gè)語句的用法新手們經(jīng)常弄混淆,至少在我學(xué)習(xí)c語言的時(shí)候經(jīng)常把它們的用法給搞錯(cuò)。不過現(xiàn)在好了,我已徹底搞清楚它們之間的用法2012-05-05微信小程序填寫用戶頭像和昵稱實(shí)現(xiàn)方法淺析
這篇文章主要介紹了微信小程序填寫用戶頭像和昵稱實(shí)現(xiàn)方法,我們使用小程序往往能碰到提示允許獲取用戶頭像昵稱,這種功能怎么實(shí)現(xiàn)呢?本篇文章帶你探索2023-02-02手機(jī)Web APP如何實(shí)現(xiàn)分享多平臺(tái)功能
這篇文章主要介紹了手機(jī)Web APP如何實(shí)現(xiàn)分享多平臺(tái)功能的相關(guān)資料,需要的朋友可以參考下2016-08-08javascript之水平橫向滾動(dòng)歌詞同步的應(yīng)用
javascript之水平橫向滾動(dòng)歌詞同步的應(yīng)用...2007-05-05