服务器之家:专注于服务器技术及软件下载分享
分类导航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服务器之家 - 编程语言 - JavaScript - js教程 - canvas绘制刮刮卡效果

canvas绘制刮刮卡效果

2022-02-13 17:15风舞红枫 js教程

这篇文章主要为大家详细介绍了canvas绘制刮刮卡效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了canvas绘制刮刮卡效果的具体代码,供大家参考,具体内容如下

先上图

canvas绘制刮刮卡效果

代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<!DOCTYPE html>
<html>
<head>
 <meta name="keywords" content="风舞红枫,前端技术,canvas"/>
 <meta name="description" content="风舞红枫,前端技术,canvas,vue,react,node,个人博客"/>
 <meta charset="utf-8">
 <title>刮刮卡</title>
 <link rel="icon" href="../image/icon2.ico" >
 <style type="text/css">
 *{margin:0;padding:0;}
 html,body{height:100%;}
 body{overflow: hidden;}
 div{position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;width:300px;height:150px;text-align:center;line-height:150px;background:rgb(200,0,0);color:rgb(255,255,255);font-size:22px;}
 canvas{display: block;position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;filter:blur(0.7px);}
 </style>
</head>
<body>
 <div></div>
 <canvas></canvas>
</body>
<script type="text/javascript">
 var div = document.getElementsByTagName('div')[0];
 var canvas = document.getElementsByTagName('canvas')[0];
 var context = canvas.getContext("2d");
 
 var Jackpots = ["一等奖","二等奖","三等奖","四等奖","奖励奖"];
 //一等奖概率2% 二等奖概率6% 三等奖概率14% 四等奖概率30% 奖励奖概率48%
 var Jackpot = rand(0,49);
 if(Jackpot == 0){
 div.innerHTML = Jackpots[0];
 }else if(Jackpot>0 && Jackpot<4){
 div.innerHTML = Jackpots[1];
 }else if(Jackpot>3 && Jackpot<11){
 div.innerHTML = Jackpots[2];
 }else if(Jackpot>10 && Jackpot<26){
 div.innerHTML = Jackpots[3];
 }else{
 div.innerHTML = Jackpots[4];
 }
 
 context.beginPath();
 context.fillStyle = "rgb(200,200,200)"
 context.moveTo(0,0);
 context.lineTo(300,0);
 context.lineTo(300,150);
 context.lineTo(0,150);
 context.lineTo(0,0);
 context.fill();
 context.closePath();
 
 context.beginPath();
 context.font = '30px Arial';
 context.fillStyle = "rgb(255,255,255)"
 context.fillText("刮刮卡", 110 , 90);
 context.fill();
 context.closePath();
 
 var fillColor = ["rgb(255,0,0,0.8)","rgb(255,255,0,0.8)","rgb(255,0,255,0.8)","rgb(0,255,255,0.8)"];
 for(var i = 0;i<50;i++){
 context.beginPath();
 context.fillStyle = fillColor[rand(0,3)];
 context.arc(rand(20,280),rand(20,130),1,0,2*Math.PI);
 context.fill();
 context.closePath();
 }
 
 var flag = false;
 canvas.onmousedown = function(){
 flag = true;
 }
 
 canvas.onmouseup = function(){
 flag = false;
 }
 
 canvas.onmousemove = function(){
 if(flag){
 var e = event || window.event;
 var x = e.clientX - parseInt(div.offsetLeft);
 var y = e.clientY - parseInt(div.offsetTop);
 //console.log(x,y);
 
 context.beginPath();
 context.arc(x,y,20,0,2*Math.PI);
 context.globalCompositeOperation="destination-out";
 context.fill();
 context.closePath();
 }
 }
 
 //随机n到m的一个整数
 function rand(n,m){
 var c = m - n + 1;
 return Math.floor(Math.random() * c + n);
 }
</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_42231248/article/details/114383090

延伸 · 阅读

精彩推荐
  • js教程JavaScript实现点击切换验证码及校验

    JavaScript实现点击切换验证码及校验

    这篇文章主要为大家详细介绍了JavaScript实现点击切换验证码及校验,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    栋栋很优秀啊3832021-12-29
  • js教程原生js实现自定义难度的扫雷游戏

    原生js实现自定义难度的扫雷游戏

    这篇文章主要为大家详细介绍了原生js实现自定义难度的扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    清欢灬6502022-01-06
  • js教程js实现验证码干扰(静态)

    js实现验证码干扰(静态)

    这篇文章主要为大家详细介绍了js实现验证码干扰,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    lzh~5232022-01-22
  • js教程js中实现继承的五种方法

    js中实现继承的五种方法

    这篇文章主要介绍了js中实现继承的五种方法,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下...

    菜小牛7502022-01-07
  • js教程javascript实现拼图游戏

    javascript实现拼图游戏

    这篇文章主要为大家详细介绍了javascript实现拼图游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    过客尘烟4952022-01-12
  • js教程javascript实现倒计时关闭广告

    javascript实现倒计时关闭广告

    这篇文章主要为大家详细介绍了javascript实现倒计时关闭广告,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    爱前端的茂茂11572022-01-20
  • js教程浅析JavaScript中的事件委托机制跟深浅拷贝

    浅析JavaScript中的事件委托机制跟深浅拷贝

    这篇文章主要介绍了JavaScript中的事件委托机制跟深浅拷贝,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要...

    打游戏也要有梦想5742022-01-05
  • js教程提高JavaScript性能技巧,以获得更快的网站

    提高JavaScript性能技巧,以获得更快的网站

    在开发应用程序时,性能是最重要的问题之一,所有软件开发人员都应该监控和改进应用程序每一层的性能。从数据库到服务器端语言,出现性能问题的时...

    粤嵌教育7742022-01-11