视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
canvas刮刮乐和画笔
2020-11-27 15:37:25 责编:小采
文档

舍不得买2块钱的刮刮乐,就只能写个类似的功能过过彩票瘾了!

布局

 NICK彩票
 
 祝
 君
 中
 奖
 
 
 一等奖
 
 
 

这段html要注意的地方有2个:

flex布局,将‘祝君中奖’垂直居中,目前还有兼容问题,不过看我们大前端的发展趋势,应该很快就能搞定了;

canvas和‘一等奖’div的z-index问题,将canvas的z-index设置较高,使其置于一等奖div上面。

设置canvas画布

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

var context = canvas.getContext("2d");

绘制刮奖区域

context.fillStyle='#A9AB9D';
context.fillRect(10,10,280,180);
context.fillStyle='#000';
context.font='50px Arial';
context.fillText('刮奖区',75,115);

填充颜色;

绘制实心矩形;

设置字体颜色;

设置字体大小类型;

绘制实心字体。

以上都是canvas基础api,看w3c就ok了。

为了好看,我将‘祝君中奖’加个字体变色

 setInterval(function(){
 document.getElementById('txt').style.color = 
 document.getElementById('txt').style.color=='
 peachpuff' ? 'yellow' : 'peachpuff';
 },500);

刮奖功能函数

 var brush=function(){//刮奖
 context.clearRect(event.offsetX,event.offsetY,20,20);
 };

为canvas元素onmousedown和onmouseup事件

 canvas.onmousedown = function(){
 // 鼠标按下时 - 绑定鼠标跟随事件
 bindHandler(canvas,'mousemove',brush,false);
 }
 canvas.onmouseup = function(){
 // 停止刮奖功能 - 解绑鼠标跟随事件
 removeHandler(canvas,"mousemove",brush,false);
 }

这里的事件绑定与解绑我上篇博文有封装,最后完整代码也有!

刮刮乐happy到底结束!最后附上完整代码,再看看效果吧!

demo二:画笔

布局

 
 
 

设置canvas画布

 var canvas2 = document.getElementById("canvas2");
 var context2 = canvas2.getContext("2d");

画笔功能函数

 var draw=function(){
 context2.fillRect(event.offsetX,event.offsetY,10,10);
 };

为canvas元素onmousedown和onmouseup事件

 context2.font='20px Arial';
 context2.strokeText('NICK画笔',100,30);//写个头
 //1. 为canvas元素onmousedown和onmouseup事件
 canvas2.onmousedown = function(){
 // 启用画笔功能 - 绑定鼠标跟随事件
 bindHandler(canvas2,'mousemove',draw,false);
 }
 canvas2.onmouseup = function(){
 // 停止画笔功能 - 解绑鼠标跟随事件
 removeHandler(canvas2,"mousemove",draw,false);
 }

画图工具的画笔功能到底结束!

附上完整代码:


 
 Canvas lottery brush nick
 
 
 
 
 
 
 NICK彩票
 
 祝
 君
 中
 奖
 
 
 一等奖
 
 
 

 
 
 
 
 

 
 

刮刮乐:鼠标按住不放,拖动开始刮奖!

画笔:鼠标按住不放,拖动画画!

下载本文
显示全文
专题