美文网首页
Canvas 刮刮卡

Canvas 刮刮卡

作者: Tiny_z | 来源:发表于2018-05-09 11:20 被阅读28次

利用canvas实现刮刮卡效果

步骤大概分为4点:

  • 现在奖项上方绘制一个遮罩效果,可以用纯色或者图片
  • 然后监听触碰事件,然后设置画笔的样式,并利用globalCompositeOperation 来设置新画笔在老画布上的重叠部分效果
  • 然后绘制线段
  • 判断绘制区域大小,当大于整个画布3/4的时候,遮罩消失

这个里面只有2点比较重要,一个是globalCompositeOperation ,然后就是判断当前线段绘制的面积

getImageData:复制画布上指定矩形的像素数据,每个像素的数据是通过rgba来展示的,其中a代表透明度,当这个值为0的时候,这个像素点就是透明的

var imageData = context.getImageData(0,0,canvas.width,canvas.height);
            var allPx = imageData.width * imageData.height;
            var visibleNum = 0; // 刮开的像素点个数
            for(var i = 0; i < allPx; i++){
                if(imageData.data[i*4 + 3] == 0){  
                    // imageData.data 里面是Uint8ClampedArray类型的一维数组 
                    // imageData中的每个像素,都是由rgba的值组成的
                    // 其中a的值代表透明度 范围0-255 0为透明 255为完全不透明
                    // https://www.w3schools.com/tags/canvas_getimagedata.asp 这里有详细的解释
                    visibleNum++;
                }
            }
            if(visibleNum >= allPx*3/4){ // 大于3/4 图层隐藏
                canvas.setAttribute('class','disappear');
            }

演示
imageData

相关文章

  • Canvas 刮刮卡

    利用canvas实现刮刮卡效果 步骤大概分为4点: 现在奖项上方绘制一个遮罩效果,可以用纯色或者图片 然后监听触碰...

  • 关于DOM整理

    canvas的刮刮卡 奖品图是canvas的背景图, 绘制一个纯色Mark 通过ctx.globalComposi...

  • OpenGL ES 实现刮刮卡和手写板功能

    该原创文章首发于微信公众号:字节流动 刮刮卡效果实现原理 其实利用 Android Canvas 实现类似刮刮卡或...

  • canvas 实现刮刮卡

    今天分享一个好玩的玩意儿,就是小时候最喜欢玩的刮刮卡,不同的是,这个刮刮卡用HTML5 canvas绘制。 查看效...

  • canvas绘制刮刮卡

    前端时间做的一个项目需要支持多终端,网页版需要使用html5中canvas画布对象对一组数据进行渲染还原,但是在实...

  • canvas实现刮刮卡 -- 移动端

    刮刮卡,现实生活中的刮刮层应该都玩过,这次封装的组件是模拟这种操作的刮刮卡,用到的技术是h5操作画布canvas。...

  • canvas制图做刮刮卡效果

    感谢小厨笔记的代码,事件那块写的很好.其实我一开始只是想把变形金刚画出来,最后画成这样了. 效果图展示

  • canvas基础之 刮刮卡效果

  • 实现刮刮卡刮奖效果js

    实现刮刮卡刮奖效果的JavaScript,基于HTML5 Canvas,采用原生js编写,不依赖任何类库。用法HT...

  • 刮刮卡效果——能否刮出一个未来

    前端入坑纪 63 今天来分享一个最近用 canvas 模拟的简易刮刮卡效果 好,详解如下! OK,first th...

网友评论

      本文标题:Canvas 刮刮卡

      本文链接:https://www.haomeiwen.com/subject/tvdnrftx.html