一、html

  1. <div id="canvasArea" style="width:300px;height:200px;position:relative;">
  2. <div style="width:300px;height:200px;background: #3083e1;position:absolute;top:0;left:0;z-index:1;text-align:center;line-height:200px;font-weight:bold;font-size:56px;color:indianred;">一等奖</div>
  3. <canvas id="canvas" width="300px" height="200px" style="position:absolute;top:0;left:0;z-index:2;"></canvas>
  4. </div>

二、js

  1. <script src="../js/zepto.min.js"></script>
  2. <script>
  3. (function(){
  4. // 事件绑定
  5. window.bindHandler = (function() {
  6. if (window.addEventListener) {// 标准浏览器
  7. return function(elem, type, handler) {
  8. // elem:节点 type:事件类型 handler:事件处理函数
  9. // 最后一个参数为true:在捕获阶段调用事件处理程序;为false:在冒泡阶段调用事件处理程序。注意:ie没有这个参数
  10. elem.addEventListener(type, handler, false);
  11. }
  12. } else if (window.attachEvent) {// IE浏览器
  13. return function(elem, type, handler) {
  14. elem.attachEvent("on" + type, handler);
  15. }
  16. }
  17. }());
  18.  
  19. // 事件解除
  20. window.removeHandler = (function() {
  21. if (window.removeEventListener) {// 标准浏览器
  22. return function(elem, type, handler) {
  23. elem.removeEventListener(type, handler, false);
  24. }
  25. } else if (window.detachEvent) {// IE浏览器
  26. return function(elem, type, handler) {
  27. elem.detachEvent("on" + type, handler);
  28. }
  29. }
  30. }());
  31.  
  32. var canvas = document.getElementById("canvas");
  33. // 创建context对象
  34. var ctx = canvas.getContext("2d");
  35. // 刮奖
  36. var brush = function () {
  37. ctx.clearRect(event.offsetX,event.offsetY,20,20);
  38. };
  39.  
  40. // 功能实现区
  41.  
  42. // 绘制刮奖区域
  43. ctx.fillStyle = '#A9AB9D';
  44. ctx.fillRect(10,10,280,180);
  45. ctx.fillStyle = '#fff';
  46. ctx.font = '50px Arial';
  47. ctx.fillText('刮奖区',75,115);
  48.  
  49. //2. 为canvas元素onmousedown和onmouseup事件
  50. canvas.onmousedown = function(){
  51. // 鼠标按下时 - 绑定鼠标跟随事件
  52. bindHandler(canvas,'mousemove',brush,false);
  53. };
  54. canvas.onmouseup = function(){
  55. // 停止刮奖功能 - 解绑鼠标跟随事件
  56. removeHandler(canvas,"mousemove",brush,false);
  57. };
  58.  
  59. //移动端手滑动
  60. function lottery(x,y,c){
  61. c.clearRect(x,y,20,20);
  62.  
  63. }
  64. canvas.addEventListener('touchmove',function(event){
  65. //如果触屏时只有一只手
  66. if(event.targetTouches.length == 1){
  67. event.preventDefault();// 阻止浏览器默认事件,重要
  68. var touch = event.targetTouches[0];
  69. var canavOffest = $(canvas).offset();
  70. var canvX = Math.floor(touch.pageX - canavOffest.left);
  71. var canvY = Math.floor(touch.pageY-canavOffest.top);
  72. lottery(canvX,canvY,ctx);
  73. }
  74.  
  75. },false);
  76. })(Zepto);
  77.  
  78. </script>

注:参考于http://www.cnblogs.com/puyongsong/p/6027533.html

canvas刮刮乐效果(pc端&H5、zepto-touchmove)的更多相关文章

  1. PC端 H5实现拍照并上传

    <!DOCTYPE HTML><html><head> <meta charset="UTF-8"> <meta name=& ...

  2. 简述移动端与PC端的区别

    1.移动端与PC端的区别 PC考虑的是浏览器的兼容性,而移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器使用的都是webkit内核,所以说做移动端开发,更 ...

  3. Html5实现移动端、PC端 刮刮卡效果

    刚从南方回来就分了一个刮刮卡效果的页面,特么的我在烦恼怎么用H5去实现这个效果呢,好不容易写出来了,产品居然说:“既然你可以写出来这个效果那当然好了,开始我只是打算让你实现点击就出现呢!”… … 尼玛 ...

  4. 游戏的套路你知道吗? H5 Canvas刮刮乐

    玩游戏的人 很多时候都会遇到翻牌子  开宝箱. 总有人傻傻的在哪里还纠结很久到底点哪一个! 纠结  指不定翻哪一个会多一点,你明明看到那个卡片的奖项多 . 那我就告诉你好了  其实很多时候在你点开那个 ...

  5. H5 Canvas刮刮乐

    玩游戏的人 很多时候都会遇到翻牌子  开宝箱. 总有人傻傻的在哪里还纠结很久到底点哪一个! 纠结  指不定翻哪一个会多一点,你明明看到那个卡片的奖项多 . 那我就告诉你好了  其实很多时候在你点开那个 ...

  6. 【Android界面实现】使用Canvas对象实现“刮刮乐”效果

    在淘宝.京东等电商举办活动的时候,常常能够看到在移动client推出的各种刮奖活动,而这样的活动也受到了非常多人的喜爱.从client的体验来说,这样的效果应该是通过网页来实现的,那么,我们使用And ...

  7. 简单入门canvas - 通过刮奖效果来学习

    一 .前言 一直在做PC端的前端开发,从互联网到行业软件.最近发现移动端已经成为前端必备技能了,真是不能停止学习.HTML5新增的一些东西,canvas是用的比较多也比较复杂的一个,简单的入门了一下, ...

  8. canvas刮刮乐

    这周有点迷茫,不知道干嘛了,一天天就过去了!我在博客右侧公告栏加了qq交流,各位有好的主题,或者有趣的技术,欢迎交流!今天突发奇想,就写了2个h5 canvas的demo玩玩! demo一:刮刮乐 舍 ...

  9. HTML5 简单实现刮刮乐效果

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. GreenDao2.2升级GreenDao3.0的适配之路

    前言.为什么要升级到Greendao3.0? 1. 多人开发 以往的数据库建表建Dao等操作要新开一个module,在统一的地方管理数据库建表,现在可以直接写Entity.多人开发时自己管自己的Ent ...

  2. web移动端开发技巧与注意事项汇总

    一.meta的使用 1.<meta name="viewport" content="width=device-width,initial-scale=1.0, m ...

  3. jsTree简单应用Demo

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  4. 【Linux命令】文件和目录操作命令

    本文主要用于常用命令的备忘,具体用法可用man查看,或查询其他资料. cd:改变工作目录 ls:列出目录的内容 mkdir:创建一个目录 cat:连接并显示指定的一个和多个文件的有关信息 cp:将给出 ...

  5. 安卓gridview 网格,多行多列实现

    主Activity() private int[] image = { R.drawable.camera, R.drawable.wifi, R.drawable.temperature, R.dr ...

  6. CFD冲蚀模拟的一些理论

    [TOC] 在CFD中计算颗粒对固体壁面的冲蚀往往采用冲蚀模型(Erosion Model). 1 冲蚀速率(Erosion Rate) 冲蚀速率定义为壁面材料在单位时间单位面积上损失的质量(单位:\ ...

  7. uva 1599 ideal path(好题)——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGYAAAODCAYAAAD+ZwdMAAAgAElEQVR4nOy9L8/0ypH/Pa8givGiyC

  8. springMVC异常&&重定向&&转发

    SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于 ...

  9. 基于pcDuino-V2的无线视频智能小车 - pcduino上的网络编程

    通过获取从串口发送上来的数据  已经和上位机的连接通信和图像发送.已经对设备的控制 https://github.com/qq2216691777/pcduino_smartcar-pcduino

  10. 如何配置Linux系统的网络IP地址

    一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置.今天小编就以CentOS6.4系统为例为大家介绍整个网络配置的过程,虽然只是以CentOS6.4系统为例,但是其它的Linux系 ...