原生JavaScript实现刮刮乐


Posted in Javascript onSeptember 29, 2020

本文实例为大家分享了JavaScript实现刮刮乐的具体代码,供大家参考,具体内容如下

原理

鼠标按住移动的时候,实现刮刮乐的效果,那就是鼠标按下的同时鼠标移动,那就清除画布。松开鼠标,鼠标移动不再清除画布了,那就得清除事件。

canvas画布

1、获取画布元素

var canvas = document.getElementById('canvas');

2、获取绘图对象getContext

var ctx = canvas.getContext('2d');

3、画线

ctx.lineWidth = 3;//线宽
ctx.strokeStyle = 'red';//线条颜色
//开始的位置 moveTo(x,y);
//结束的位置lineTo(x,y)
//执行stroke()

4、矩形ctx.rect(x,y,width,height);

ctx.rect(0,0,300,150);
ctx.fillStyle = '#ccc';//填充的颜色
ctx.fill();//执行
ctx.clearRect(e.clientX,e.clientY,20,20);//清除矩形

页面

1、页面结构

<canvas id="canvas" width="300" height="150" style="border: 1px solid #ccc;"></canvas>
<div class="prize">谢谢惠顾</div>

2、样式

.prize {
 width: 300px;
 height: 150px;
 text-align: center;
 line-height: 150px;
 margin-top:-150px;
 color: red;
 font-size: 20px;
}

3、动画

//获取画布元素
 var canvas = document.getElementById('canvas');
 // 获取绘图对象
 var ctx = canvas.getContext('2d');
 ctx.lineWidth = 3;//线宽
 ctx.strokeStyle = 'red';//线条颜色
 //开始的位置 moveTo(x,y);
 //结束的位置lineTo(x,y)
 //执行stroke()

 //矩形
 ctx.rect(0,0,300,150);
 ctx.fillStyle = '#ccc';//填充的颜色
 ctx.fill();//执行
 ctx.clearRect(e.clientX,e.clientY,20,20);
 // 按下
 canvas.onmousedown = function (e){
  //移动
  canvas.onmousemove = function (e) {
   // ctx.lineTo(e.clientX,e.clientY);
   // ctx.lineTo(100,100)
   // ctx.stroke();
   ctx.clearRect(e.clientX,e.clientY,20,20);//清除
  }
 }
 canvas.onmouseup = function (e) {
  canvas.onmousemove = null;
 }
 // 改变中奖信息
 var arr = ['一个亿','现金500','100元话费','腾讯视频VIP月卡','谢谢惠顾'],
  prize = document.querySelector('.prize'),
  random = Math.floor(Math.random()*arr.length);
 prize.innerText = arr[random];

完整源码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
  /*----------js刮刮乐------------*/
  .prize {
   width: 300px;
   height: 150px;
   text-align: center;
   line-height: 150px;
   margin-top:-150px;
   color: red;
   font-size: 20px;
  }
 </style>
</head>
<body>
<!--js刮刮乐-->
<canvas id="canvas" width="300" height="150" style="border: 1px solid #ccc;"></canvas>
<div class="prize">谢谢惠顾</div>

<script>
 // ------------js刮刮乐-----------
 //获取画布元素
 var canvas = document.getElementById('canvas');
 // 获取绘图对象
 var ctx = canvas.getContext('2d');
 ctx.lineWidth = 3;//线宽
 ctx.strokeStyle = 'red';//线条颜色
 //开始的位置 moveTo(x,y);
 //结束的位置lineTo(x,y)
 //执行stroke()

 //矩形
 ctx.rect(0,0,300,150);
 ctx.fillStyle = '#ccc';//填充的颜色
 ctx.fill();//执行
 ctx.clearRect(e.clientX,e.clientY,20,20);
 // 按下
 canvas.onmousedown = function (e){
  //移动
  canvas.onmousemove = function (e) {
   // ctx.lineTo(e.clientX,e.clientY);
   // ctx.lineTo(100,100)
   // ctx.stroke();
   ctx.clearRect(e.clientX,e.clientY,20,20);//清除
  }
 }
 canvas.onmouseup = function (e) {
  canvas.onmousemove = null;
 }
 // 改变中奖信息
 var arr = ['一个亿','现金500','100元话费','腾讯视频VIP月卡','谢谢惠顾'],
  prize = document.querySelector('.prize'),
  random = Math.floor(Math.random()*arr.length);
 prize.innerText = arr[random];
 // ------------js刮刮乐-----------
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript循环变量注册dom事件 之强大的闭包
Sep 08 Javascript
JQuery在页面中添加和除移DOM示例代码
Jun 24 Javascript
JavaScript动态插入script的基本思路及实现函数
Nov 11 Javascript
js形成页面的一种遮罩效果实例代码
Jan 04 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
Mar 28 Javascript
sso跨域写cookie的一段js脚本(推荐)
May 25 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
Apr 25 Javascript
详解webpack 如何集成第三方js库
Jun 29 Javascript
基于Vue实现拖拽功能
Jul 29 Javascript
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
Dec 06 Javascript
原生JavaScript实现拖动校验功能
Sep 29 #Javascript
使用JavaScript实现贪吃蛇游戏
Sep 29 #Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 #Javascript
Openlayers3实现车辆轨迹回放功能
Sep 29 #Javascript
vue 验证两次输入的密码是否一致的方法示例
Sep 29 #Javascript
JS中队列和双端队列实现及应用详解
Sep 29 #Javascript
js实现贪吃蛇游戏(简易版)
Sep 29 #Javascript
You might like
PHP校验ISBN码的函数代码
2011/01/17 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
js实现日历的简单算法
2017/01/24 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
Python实现拼接多张图片的方法
2014/12/01 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
超简单使用Python换脸实例
2019/03/27 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
初中高效课堂实施方案
2014/02/26 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
长城导游词300字
2015/01/30 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
Python基础之Socket通信原理
2021/04/22 Python
源码解读Spring-Integration执行过程
2021/06/11 Java/Android
关于Python使用turtle库画任意图的问题
2022/04/01 Python