(function (global, factory) {

typeof module === 'object' && typeof module.exports === 'object' ? module.exports = factory() :

typeof define === 'function' && define.amd ? define(factory) :

global.cavns = factory(global);

})(this, function () {

var cavns = {

position:{

oLeft:"",

oTop:""

},

ctx:"",

init : function(n){

var pic = new Image();

//pic.src ="images/lottery/lottery.png";

var src = document.getElementById("lotpng").src;

pic.src = src;

pic.onload = function(){

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

cavns.ctx = canvas.getContext("2d");

cavns.ctx.beginPath();

cavns.ctx.drawImage(pic,0,0,300,180);

/*this.ctx.fillStyle = 'rgba(0,0,0, 0.5)'*/;

/*this.ctx.fillRect(0, 0, canvas.width, canvas.height);*/

cavns.ctx.closePath();

var arr = cavns.getOffset(canvas);

cavns.position.oLeft = arr[0];

cavns.position.oTop = arr[1];

}

},

getOffset:function(obj){

var valLeft = 0,valTop = 0;

function get(obj){

valLeft += obj.offsetLeft;

valTop += obj.offsetTop;

/* 不到最外层就一直调用,直到offsetParent为body*/

if (obj.offsetParent.tagName!='BODY') {

get(obj.offsetParent);

}

return [valLeft,valTop];

}

return get(obj);

},

touchstart : function(){

this.ctx.beginPath();

this.ctx.lineWidth = 25;

this.ctx.globalCompositeOperation = 'destination-out';

this.ctx.moveTo(event.touches[0].pageX-cavns.position.oLeft, event.touches[0].pageY-cavns.position.oTop);

},

touchmove : function(){

/* 根据手指移动画线,使之变透明*/

this.ctx.lineTo(event.touches[0].pageX-cavns.position.oLeft, event.touches[0].pageY-cavns.position.oTop);

/* 填充*/

this.ctx.stroke();

},

touchend : function(fn){

/* 获取imageData对象*/

var imageDate = this.ctx.getImageData(0, 0, canvas.width, canvas.height);

/* */

var allPX = imageDate.width * imageDate.height;

var iNum = 0; //记录刮开的像素点个数

for (var i = 0; i < allPX; i++) {

if (imageDate.data[i * 4 + 3] == 0) {

iNum++;

}

}

if (iNum >= allPX * 1 / 20) {

typeof fn == 'function' && fn();

}

}

}

return cavns;

});

最新文章

  1. Makefile---make内嵌函数及make命令显示 (九)
  2. mysql InnoDB 索引小记
  3. google protobuf 使用示例
  4. innodb b+树
  5. 学习Swift--方法
  6. 真机测试---iOS证书(.p12)和描述文件(.mobileprovision)
  7. UCTF Final-Hackventure
  8. POJ 3259 Wormholes( bellmanFord判负环)
  9. html5权威指南:嵌入另一张HTML文档、通过插件嵌入内容、嵌入数字表现形式
  10. 第3阶段——内核启动分析之start_kernel初始化函数(5)
  11. Centos 使用yum安装MongoDB 4.0
  12. Day8 信号检测与估值
  13. 1006 Tick and Tick
  14. git 服务器搭建及提交代码检查
  15. POJ3304 Segments 【线段直线相交】
  16. 95% CI, 置信区间 Confidence Interval
  17. JVM 专题
  18. 通过注解实现一个简易的Spring mvc框架
  19. 【Scrapy】关于使用Scrapy框架爬虫遇到的问题1
  20. nginx支持ssl双向认证配置

热门文章

  1. vue搭配axios踩坑
  2. 修改windows服务的描述
  3. BZOJ4195 luoguP1955 NOI2015D1T1 程序自动分析
  4. Linux的用户
  5. mysql中的sql_mode
  6. 【转】 .Net MVC4 上传大文件,并保存表单
  7. 【Python爬虫实战】Scrapy框架的安装 搬运工亲测有效
  8. 27.纯 CSS 创作一个精彩的彩虹 loading 特效
  9. web.xml配置重理解
  10. spring 之 init-method &amp; InitializingBean