最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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">
 //獲取對象
 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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 前端必會(huì)的圖片懶加載(三種方式)

    前端必會(huì)的圖片懶加載(三種方式)

    在我們訪問一個(gè)圖片展示比較多的網(wǎng)頁時(shí),加載速度慢很多時(shí)候正是因?yàn)閳D片多導(dǎo)致,本文主要介紹了前端必會(huì)的圖片懶加載(三種方式),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • uniapp-路由uni-simple-router安裝配置教程

    uniapp-路由uni-simple-router安裝配置教程

    專為uniapp打造的路由器,和uniapp深度集成,uniapp用到了很多vue的api,但在路由管理的功能相對于vue-router還是比較欠缺的,比如全局導(dǎo)航守衛(wèi),本文給大家講解uniapp-路由uni-simple-router相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • 微信小程序在ios下Echarts圖表不能滑動(dòng)的問題解決

    微信小程序在ios下Echarts圖表不能滑動(dòng)的問題解決

    這篇文章主要介紹了微信小程序在ios下Echarts圖表不能滑動(dòng)的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們來一起學(xué)習(xí)下吧
    2019-07-07
  • JavaScript中三種非破壞性處理數(shù)組的方法比較

    JavaScript中三種非破壞性處理數(shù)組的方法比較

    在這篇文章中,我們將會(huì)探索處理數(shù)組的三種方法:for…of循環(huán)、數(shù)組方法.reduce()和數(shù)組方法.flatMap(),文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-06-06
  • js canvas實(shí)現(xiàn)放大鏡查看圖片功能

    js canvas實(shí)現(xiàn)放大鏡查看圖片功能

    這篇文章主要為大家詳細(xì)介紹了js canvas實(shí)現(xiàn)放大鏡查看圖片功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • layer 刷新某個(gè)頁面的實(shí)現(xiàn)方法

    layer 刷新某個(gè)頁面的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇layer 刷新某個(gè)頁面的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 循環(huán) vs 遞歸淺談

    循環(huán) vs 遞歸淺談

    本文代碼使用 JavaScript。 一些同學(xué)對遞歸的理解還停留在“是一種求階乘比循環(huán)低效的方法”。但其實(shí)遞歸和循環(huán)處理的問題是不同。拿“遍歷數(shù)組”這個(gè)問題來說:循環(huán)適合同一維度(單層長度不限)上的遍歷,而遞歸則適合跨維度(層數(shù)不限)的遍歷。
    2013-02-02
  • JS基于FileSystemObject創(chuàng)建一個(gè)指定路徑的TXT文本文件

    JS基于FileSystemObject創(chuàng)建一個(gè)指定路徑的TXT文本文件

    這篇文章主要介紹了JS基于FileSystemObject創(chuàng)建一個(gè)指定路徑的TXT文本文件,涉及javascript使用ActiveXObject控件中FileSystemObject對象模型的基本技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • javascript打開新窗口同時(shí)關(guān)閉舊窗口

    javascript打開新窗口同時(shí)關(guān)閉舊窗口

    因業(yè)務(wù)需要,在網(wǎng)上查找這個(gè)問題的解決辦法,但是昏天黑地地搞了半天,找到的方法雖然可以實(shí)現(xiàn)功能,但是總是會(huì)跳出討厭的“關(guān)閉窗口”的提示框,郁悶。
    2009-01-01
  • Qt利用布局widget和ScrollArea實(shí)現(xiàn)抽屜效果(實(shí)例代碼)

    Qt利用布局widget和ScrollArea實(shí)現(xiàn)抽屜效果(實(shí)例代碼)

    這篇文章主要介紹了Qt利用布局,widget和ScrollArea實(shí)現(xiàn)抽屜效果,本文通過實(shí)例代碼圖文展示給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07

最新評論

修水县| 新化县| 湘乡市| 阳春市| 贵溪市| 大田县| 根河市| 孟津县| 若羌县| 安溪县| 徐汇区| 舒城县| 夏邑县| 普陀区| 龙泉市| 崇左市| 读书| 运城市| 马公市| 辽源市| 华亭县| 成安县| 卢湾区| 平果县| 南京市| 龙川县| 禹城市| 南宫市| 洪雅县| 营口市| 盐池县| 尖扎县| 和硕县| 措勤县| 灵台县| 东海县| 沙田区| 洛川县| 观塘区| 顺昌县| 东阳市|