全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

canvas实现刮刮卡效果

目前在html5和css3的热潮下,html页面的效果也是层出不穷,下面我们来介绍使用canvas来模仿刮奖刮开效果。

原理

在需要刮出的图片或者文字上方盖上一层灰色或者其他背景的canvas画布,当手指或者鼠标点击画布并移动时,将画布上移动过的轨迹变成透明即可。

分析

demo中在class为content的div上盖上一层灰色的画布,然后通过获取鼠标和手指的坐标计算出在画布位置上的坐标,通过在坐标原点位置画一个半径10px的透明圆形来透过画布,显示出画布下的内容。本demo是用时需要改变的内容为_width,_height,touchTop,touchLeft这几个参数,根据自身画布的位置自行计算即可。由于是长按事件,记得在移动端阻止浏览器默认功能。

效果图:

图(1)初始图

图(2)刮开效果

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" />
<style>
.content,.cover{width:400px; height:400px; position:absolute; left:50%; top:50%; margin:-200px 0 0 -200px;}
.content{ font-size:48px; line-height:400px; text-align:center;}
h3{ text-align:center; line-height:200px;}
</style>
</head>
<body>
 <h3>快来刮开!!!</h3>
 <div class="content" >中奖啦~!</div>
 <canvas id="cover" class="cover" width="400" height="400"></canvas>
</body>
<script>
var isdown = false,
 cover = document.getElementById("cover"),
 covercanvas = cover.getContext("2d");
 //
 covercanvas.fillStyle="transparent";
 covercanvas.fillRect(0,0,400,400);
 function fillter( canvas ){
 canvas.fillStyle="#ccc";
 canvas.fillRect(0,0,400,400);
 }
 function isDown(e){
 e.preventDefault();
 isdown=true; 
 }
 function isUp(e){
 isdown=false; 
 }
 function draw( e ){
 e.preventDefault();
 if(isdown){
 if(e.changedTouches){
  e=e.changedTouches[e.changedTouches.length-1];
  }
 var _height= parseInt((window.innerHeight-400)/2),
 _width= parseInt((window.innerWidth-400)/2),
 touchTop=e.clientY - _height,
 touchLeft=e.clientX - _width;
 with(covercanvas){
 beginPath();
 arc(touchLeft, touchTop, 10, 0, Math.PI * 2);
 fill();
 } 
 }
 //alert(touchTop);
 }
 fillter(covercanvas);
 covercanvas.globalCompositeOperation = 'destination-out';
 cover.addEventListener('touchstart',isDown);
 cover.addEventListener('touchmove',draw);
 cover.addEventListener('touchend',isUp);
 cover.addEventListener('mousemove',draw);
 cover.addEventListener('mousedown',isDown);
 cover.addEventListener('mouseup',isUp);
</script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# canvas实现刮奖效果  # 刮刮卡效果  # canvas  # 刮刮卡  # 利用HTML5的画布Canvas实现刮刮卡效果  # javascript+canvas实现刮刮卡抽奖效果  # jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】  # 手机端js和html5刮刮卡效果  # js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS  # canvas绘制刮刮卡效果  # 鼠标  # 快来  # 这几个  # 或者其他  # 层出不穷  # 出在  # 上一层  # 无标题文档  # 画一  # 鼠标点击  # 上盖  # viewport  # title  # gt  # doctype  # lt  # head  # utf  # charset  # meta 


相关文章: 深圳企业网站制作设计,在深圳如何网上全流程注册公司?  建站主机选哪家性价比最高?  长沙企业网站制作哪家好,长沙水业集团官方网站?  Android自定义控件实现温度旋转按钮效果  香港服务器网站卡顿?如何解决网络延迟与负载问题?  长沙做网站要多少钱,长沙国安网络怎么样?  如何快速查询网站的真实建站时间?  建站之星代理商如何保障技术支持与售后服务?  教学网站制作软件,学习*后期制作的网站有哪些?  已有域名如何快速搭建专属网站?  定制建站是什么?如何实现个性化需求?  平台云上自主建站:模板化设计与智能工具打造高效网站  深圳网站制作培训,深圳哪些招聘网站比较好?  如何通过主机屋免费建站教程十分钟搭建网站?  如何选择CMS系统实现快速建站与SEO优化?  建站之家VIP精选网站模板与SEO优化教程整合指南  北京专业网站制作设计师招聘,北京白云观官方网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何通过FTP空间快速搭建安全高效网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  成都网站制作报价公司,成都工业用气开户费用?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  如何在香港免费服务器上快速搭建网站?  宁波免费建站如何选择可靠模板与平台?  Python如何创建带属性的XML节点  ,网页ppt怎么弄成自己的ppt?    如何做静态网页,sublimetext3.0制作静态网页?  网站制作模板下载什么软件,ppt模板免费下载网站?  如何在建站主机中优化服务器配置?  如何在万网自助建站平台快速创建网站?  如何快速搭建高效WAP手机网站吸引移动用户?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何自定义建站之星模板颜色并下载新样式?  建站为何优先选择香港服务器?  建站之星代理平台如何选择最佳方案?  如何在IIS中配置站点IP、端口及主机头?  如何获取免费开源的自助建站系统源码?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  如何高效配置香港服务器实现快速建站?  宝塔新建站点为何无法访问?如何排查?  如何撰写建站申请书?关键要点有哪些?  高端云建站费用究竟需要多少预算?  建站主机功能解析:服务器选择与快速搭建指南  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  建站之星北京办公室:智能建站系统与小程序生成方案解析  css网站制作参考文献有哪些,易聊怎么注册?  建站168自助建站系统:快速模板定制与SEO优化指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。