canvas刮刮乐效果(pc端&H5、zepto-touchmove)
一、html
- <div id="canvasArea" style="width:300px;height:200px;position:relative;">
- <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>
- <canvas id="canvas" width="300px" height="200px" style="position:absolute;top:0;left:0;z-index:2;"></canvas>
- </div>
二、js
- <script src="../js/zepto.min.js"></script>
- <script>
- (function(){
- // 事件绑定
- window.bindHandler = (function() {
- if (window.addEventListener) {// 标准浏览器
- return function(elem, type, handler) {
- // elem:节点 type:事件类型 handler:事件处理函数
- // 最后一个参数为true:在捕获阶段调用事件处理程序;为false:在冒泡阶段调用事件处理程序。注意:ie没有这个参数
- elem.addEventListener(type, handler, false);
- }
- } else if (window.attachEvent) {// IE浏览器
- return function(elem, type, handler) {
- elem.attachEvent("on" + type, handler);
- }
- }
- }());
- // 事件解除
- window.removeHandler = (function() {
- if (window.removeEventListener) {// 标准浏览器
- return function(elem, type, handler) {
- elem.removeEventListener(type, handler, false);
- }
- } else if (window.detachEvent) {// IE浏览器
- return function(elem, type, handler) {
- elem.detachEvent("on" + type, handler);
- }
- }
- }());
- var canvas = document.getElementById("canvas");
- // 创建context对象
- var ctx = canvas.getContext("2d");
- // 刮奖
- var brush = function () {
- ctx.clearRect(event.offsetX,event.offsetY,20,20);
- };
- // 功能实现区
- // 绘制刮奖区域
- ctx.fillStyle = '#A9AB9D';
- ctx.fillRect(10,10,280,180);
- ctx.fillStyle = '#fff';
- ctx.font = '50px Arial';
- ctx.fillText('刮奖区',75,115);
- //2. 为canvas元素onmousedown和onmouseup事件
- canvas.onmousedown = function(){
- // 鼠标按下时 - 绑定鼠标跟随事件
- bindHandler(canvas,'mousemove',brush,false);
- };
- canvas.onmouseup = function(){
- // 停止刮奖功能 - 解绑鼠标跟随事件
- removeHandler(canvas,"mousemove",brush,false);
- };
- //移动端手滑动
- function lottery(x,y,c){
- c.clearRect(x,y,20,20);
- }
- canvas.addEventListener('touchmove',function(event){
- //如果触屏时只有一只手
- if(event.targetTouches.length == 1){
- event.preventDefault();// 阻止浏览器默认事件,重要
- var touch = event.targetTouches[0];
- var canavOffest = $(canvas).offset();
- var canvX = Math.floor(touch.pageX - canavOffest.left);
- var canvY = Math.floor(touch.pageY-canavOffest.top);
- lottery(canvX,canvY,ctx);
- }
- },false);
- })(Zepto);
- </script>
注:参考于http://www.cnblogs.com/puyongsong/p/6027533.html
canvas刮刮乐效果(pc端&H5、zepto-touchmove)的更多相关文章
- PC端 H5实现拍照并上传
<!DOCTYPE HTML><html><head> <meta charset="UTF-8"> <meta name=& ...
- 简述移动端与PC端的区别
1.移动端与PC端的区别 PC考虑的是浏览器的兼容性,而移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器使用的都是webkit内核,所以说做移动端开发,更 ...
- Html5实现移动端、PC端 刮刮卡效果
刚从南方回来就分了一个刮刮卡效果的页面,特么的我在烦恼怎么用H5去实现这个效果呢,好不容易写出来了,产品居然说:“既然你可以写出来这个效果那当然好了,开始我只是打算让你实现点击就出现呢!”… … 尼玛 ...
- 游戏的套路你知道吗? H5 Canvas刮刮乐
玩游戏的人 很多时候都会遇到翻牌子 开宝箱. 总有人傻傻的在哪里还纠结很久到底点哪一个! 纠结 指不定翻哪一个会多一点,你明明看到那个卡片的奖项多 . 那我就告诉你好了 其实很多时候在你点开那个 ...
- H5 Canvas刮刮乐
玩游戏的人 很多时候都会遇到翻牌子 开宝箱. 总有人傻傻的在哪里还纠结很久到底点哪一个! 纠结 指不定翻哪一个会多一点,你明明看到那个卡片的奖项多 . 那我就告诉你好了 其实很多时候在你点开那个 ...
- 【Android界面实现】使用Canvas对象实现“刮刮乐”效果
在淘宝.京东等电商举办活动的时候,常常能够看到在移动client推出的各种刮奖活动,而这样的活动也受到了非常多人的喜爱.从client的体验来说,这样的效果应该是通过网页来实现的,那么,我们使用And ...
- 简单入门canvas - 通过刮奖效果来学习
一 .前言 一直在做PC端的前端开发,从互联网到行业软件.最近发现移动端已经成为前端必备技能了,真是不能停止学习.HTML5新增的一些东西,canvas是用的比较多也比较复杂的一个,简单的入门了一下, ...
- canvas刮刮乐
这周有点迷茫,不知道干嘛了,一天天就过去了!我在博客右侧公告栏加了qq交流,各位有好的主题,或者有趣的技术,欢迎交流!今天突发奇想,就写了2个h5 canvas的demo玩玩! demo一:刮刮乐 舍 ...
- HTML5 简单实现刮刮乐效果
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- GreenDao2.2升级GreenDao3.0的适配之路
前言.为什么要升级到Greendao3.0? 1. 多人开发 以往的数据库建表建Dao等操作要新开一个module,在统一的地方管理数据库建表,现在可以直接写Entity.多人开发时自己管自己的Ent ...
- web移动端开发技巧与注意事项汇总
一.meta的使用 1.<meta name="viewport" content="width=device-width,initial-scale=1.0, m ...
- jsTree简单应用Demo
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- 【Linux命令】文件和目录操作命令
本文主要用于常用命令的备忘,具体用法可用man查看,或查询其他资料. cd:改变工作目录 ls:列出目录的内容 mkdir:创建一个目录 cat:连接并显示指定的一个和多个文件的有关信息 cp:将给出 ...
- 安卓gridview 网格,多行多列实现
主Activity() private int[] image = { R.drawable.camera, R.drawable.wifi, R.drawable.temperature, R.dr ...
- CFD冲蚀模拟的一些理论
[TOC] 在CFD中计算颗粒对固体壁面的冲蚀往往采用冲蚀模型(Erosion Model). 1 冲蚀速率(Erosion Rate) 冲蚀速率定义为壁面材料在单位时间单位面积上损失的质量(单位:\ ...
- uva 1599 ideal path(好题)——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGYAAAODCAYAAAD+ZwdMAAAgAElEQVR4nOy9L8/0ypH/Pa8givGiyC
- springMVC异常&&重定向&&转发
SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于 ...
- 基于pcDuino-V2的无线视频智能小车 - pcduino上的网络编程
通过获取从串口发送上来的数据 已经和上位机的连接通信和图像发送.已经对设备的控制 https://github.com/qq2216691777/pcduino_smartcar-pcduino
- 如何配置Linux系统的网络IP地址
一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置.今天小编就以CentOS6.4系统为例为大家介绍整个网络配置的过程,虽然只是以CentOS6.4系统为例,但是其它的Linux系 ...