js HTML5手机刮刮乐代码


Posted in Javascript onSeptember 29, 2020

手机刮刮乐HTML5代码, 使用原型prototype扩展了一个clearArc 清除圆内像素的功能, 此功能未完成扇形清除功能, 此外,在清除圆内的像素时,还有点瑕疵,右边和下边还不够圆滑,有明显的齿状。如果你找到修复方法请一定要告诉我哟。不过此清除方法用于刮刮乐已经完全满足需求了。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>刮刮乐</title>
<script type="text/javascript">
 window.onload = function() {
 init();
 }
 CanvasRenderingContext2D.prototype.clearArc=function(x,y,radius,startAngle, endAngle, counterclockwise){
 var distance = function(x0,y0,x1,y1){
 var dis = Math.sqrt(Math.pow(x0-x1,2)+Math.pow(y0-y1,2));
 //return Math.ceil(dis*10000)/10000;
 return Math.round(dis*10000)/10000;
 };
 //首先获得矩形
 var diameter = radius*2;
 var startX = x-radius;
 var cx = radius-(0-startX);
 startX = startX<0?0:startX;
 cx = cx-startX;
 var startY = y-radius;
 var cy = radius-(0-startY);
 startY = startY<0?0:startY;
 cy = cy-startY;
 var imgData = this.getImageData(startX,startY,diameter,diameter);//需要处理的矩形
 for (var i=0;i<imgData.data.length;i+=4){
 //矩阵内的坐标
 var ii = i/4;
 var ix = Math.floor(ii/imgData.width);
 var iy = ii%imgData.height;
 var dis = distance(ix,iy,cx,cy);
 if(dis<=radius){//此点在圆内
 imgData.data[i+0]=0;
 imgData.data[i+1]=0;
 imgData.data[i+2]=0;
 imgData.data[i+3]=0;
 continue;
 }
 var dr = dis-radius;
 if(dr<Math.SQRT2){
 var n = Math.sqrt(Math.pow(dr, 2)/2)*256;//新
 var o = imgData.data[i+3];
 imgData.data[i+3]=n<o?n:o;
 continue;
 }
 }
 this.putImageData(imgData,startX,startY);
 };
 function init() {
 var imageWidth = 200;
 var imageHeight = 100;
 var gglc = document.getElementById("gglc");
 var gglc2D = gglc.getContext("2d");
 gglc2D.fillStyle = '#cccccc'; //设置覆盖层的颜色
 gglc2D.fillRect(1, 1, imageWidth, imageHeight); //设置覆盖的区域
 //gglc2D.clearArc(25,25,20);
 gglc.addEventListener("touchmove", function(event) {
 event.preventDefault();
 for(var i in event.targetTouches){
 var touch = event.targetTouches[i];
 gglc2D.clearArc(touch.pageX,touch.pageY,20);
 }
 }, false);
 gglc.addEventListener("touchstart", function(event) {
 event.preventDefault();
 for(var i in event.targetTouches){
 var touch = event.targetTouches[i];
 gglc2D.clearArc(touch.pageX,touch.pageY,20);
 }
 }, false);
 }
</script>
</head>
<body>
 <div style="position: relative; width: 100%;height: 100%;">
 <div style="position: absolute; width: 200px; height: 100px; text-align: center;line-height: 100px;border: 1px solid #ccc;'">谢谢惠顾</div>
 <canvas style="position: absolute;" id="gglc" width="201" height="101"></canvas>
 </div>
</body>
</html>

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

Javascript 相关文章推荐
在次封装easyui-Dialog插件实现代码
Nov 14 Javascript
jquery选择器原理介绍($()使用方法)
Mar 25 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
Dec 02 Javascript
js阻止浏览器默认行为的简单实例
May 15 Javascript
AngularJS入门教程之静态模板详解
Aug 18 Javascript
手机Web APP如何实现分享多平台功能
Aug 19 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 Javascript
Vue2.0用户权限控制解决方案的示例
Feb 10 Javascript
js常见遍历操作小结
Jun 06 Javascript
微信小程序实现发微博功能的示例代码
Jun 24 Javascript
请求时token过期自动刷新token操作
Sep 11 Javascript
原生js的RSA和AES加密解密算法
Oct 08 #Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 #Javascript
微信小程序 实战小程序实例
Oct 08 #Javascript
node.js实现博客小爬虫的实例代码
Oct 08 #Javascript
阿里云ecs服务器中安装部署node.js的步骤
Oct 08 #Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 #Javascript
jQuery如何解决IE输入框不能输入的问题
Oct 08 #Javascript
You might like
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
php模拟post提交数据的方法
2015/02/12 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
Ionic快速安装教程
2016/06/03 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
python实现快递价格查询系统
2020/03/03 Python
python中关于数据类型的学习笔记
2020/07/19 Python
python编程的核心知识点总结
2021/02/08 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
家庭贫困证明范本(经典版)
2014/09/22 职场文书
企业整改报告范文
2014/11/08 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS