canvas教程

HTML5 canvas标签实现刮刮卡效果

字号+ 作者:H5之家 来源:H5之家 2015-10-05 17:35 我要评论( )

黑手安全网是国内网络安全技术交流论坛,致力于提供最新的网络技术,最全的动画教程以及安全培训,以拒绝黑客行为,增强自身网络安全知识为目标的网络培训基地

网站小编 2015-04-27 11:10

HTML5 canvas标签实现刮刮卡效果 你玩过刮刮卡么?一不小心可以中奖的那种。今天我给大家分享一个基于HTML5技术实现的刮刮卡效果,在PC上只需按住鼠标,在手机上你只需按住指头,轻轻刮去图层就可以模拟真实的刮奖效果。

[attachment=189449]

]pNM~,  
源码下载: idBd aZg  
          我们利用HTML5的画布Canvas,结合其提供的API,在Canvas元素上绘制一个灰色蒙层,然后通过检测用户鼠标移到和手势来绘制一个透明的图形,这样就能看到Canvas背景下的真实图片,就达到刮刮卡效果。 bh" Caz.(t  
 
 
 
 
 
 
          然后进入主体,当检测到图片加载完的时候,首先定义一些属性和函数,函数layer()用来绘制一个灰色的正方形,eventDown()定义了按下事件eventUp()定义了松开事件,eventMove()定义了移动事件,其中当按下时,获取坐标位移,并通过arc(x, y, 10, 0, Math.PI * 2)来绘制小圆点。 93)1  
O8*yho  
 #3C] "  
代码如下:
Zh:@A Fz:R  
b5 AP{ #  
img.addEventListener('load', function(e) { 5'rP-z~ u  
var ctx; GKXd"8z]  
var w = img.width, St3/mDtH  
h = img.height; B%co`0$  
var offsetX = canvas.offsetLeft, Xj6?,J  
offsetY = canvas.offsetTop; gr >>]C$  
var mousedown = false; .L3D]  
(ap,3$ hS  
function layer(ctx) { Ap(>mUs!i  
ctx.fillStyle = 'gray'; - [vH4~  
ctx.fillRect(0, 0, w, h); om0g'Qa  
} =eeZtj.  
KupQtT<  
function eventDown(e){ I|P#|0< 2  
e.preventDefault(); Y7@$#/1  
mousedown=true; G8 CM  
} &(X-b"2  
$@ZrGT  
function eventUp(e){ ,6T3:qkkvF  
e.preventDefault(); ?wj1t!83  
mousedown=false; dj:6c@n  
} Cq%1j[  
j !rQa^   
function eventMove(e){  
8UN7(J  
`oGL==  
代码如下:
]Geg;[ t  
hV7]/z!d  
img.addEventListener('load', function(e) { `78)|a*R.  
//..接上段代码 4-veO3&.h  
canvas.width=w; r q_0"A  
canvas.height=h; E\dJb}"x %  
canvas.style.backgroundImage='url('+img.src+')'; = & =#G3f  
ctx=canvas.getContext('2d'); &d/x1=  
ctx.fillStyle='transparent'; 2qxed e  
ctx.fillRect(0, 0, w, h);//绘制矩形 9L9+zs3 k  
layer(ctx); b?{\t;  
:FqHMN  
ctx.globalCompositeOperation = 'destination-out'; F>/"If#  
)7}f .  
canvas.addEventListener('touchstart', eventDown); =UMqa;\K  
canvas.addEventListener('touchend', eventUp); @Rp#*{  
canvas.addEventListener('touchmove', eventMove); aokV'6  
canvas.addEventListener('mousedown', eventDown); ~s4o1^6L  
canvas.addEventListener('mouseup', eventUp); }{( J *T  
canvas.addEventListener('mousemove', eventMove); +Ssu^ >D  
Hm*?<o9mxC  
           你可以下载DEMO中的完整的代码,你可以根据实际需求,结合后台程序与数据库,完成一个真正的刮刮卡程序。
5 i;n:&Y  

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 用C++Builder在桌面上画图

    用C++Builder在桌面上画图

    2015-10-08 14:17

  • js+html5实现canvas绘制镂空字体文本的方法

    js+html5实现canvas绘制镂空字体文本的方法

    2015-10-06 18:17

网友点评