热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

css3canvas之刮刮卡效果

今天我有时间学习了一下html5新增的这个标签canvas,以前虽然经常写html5网页,可是都没用过这个标签。最近刚弄了一个h5微信送祝福的网页,差不多折腾了一个星期,所以我觉得我得系统的来学

   今天我有时间学习了一下html5新增的这个标签canvas,以前虽然经常写html5网页,可是都没用过这个标签。最近刚弄了一个 >div> 24 body> 25 <script> 26 (function(){ 27 28 window.onload=function(){ 29 document.ontouchmove=function(e){ 30 e.preventDefault();//阻止默认的滚动事件 31 }; 32 //检测浏览器是否支持canvas标签 33 try{ 34 document.createElement("canvas").getContext('2d'); 35 }catch (e){ 36 alert('您的手机不支持刮刮卡效果'); 37 } 38 }; 39 var u=navigator.userAgent; 40 var mobile='pc'; 41 42 if(u.indexOf('iphone')>-1){ 43 mobile='iphone'; 44 } 45 if(u.indexOf('Android')>-1|| u.indexOf('linux')>-1){ 46 mobile='Android'; 47 } 48 //创建一个canvas标签 49 function createCanvas(parent,width,height){ 50 var canvas={}; 51 canvas.node=document.createElement("canvas"); 52 canvas.context=canvas.node.getContext('2d'); 53 canvas.node.width=width||1000; 54 canvas.node.height=height||600; 55 parent.appendChild(canvas.node); 56 return canvas; 57 } 58 function init(container,width,height,fillcolor,type){ 59 var canvas=createCanvas(container,width,height); 60 var ctx=canvas.context; 61 ctx.fillCircle=function(x,y,radius,fillcolor){ 62 this.fillStyle=fillcolor; 63 this.beginPath(); 64 this.moveTo(x,y); 65 this.arc(x,y,radius,0,Math.PI*2,false); 66 this.fill(); 67 }; 68 ctx.clearTo=function(fillcolor){ 69 ctx.fillStyle=fillcolor; 70 ctx.fillRect(0,0,width,height); 71 }; 72 ctx.clearTo(fillcolor||"#ddd"); 73 canvas.node.addEventListener(mobile=="pc"?"mousedown":"touchstart",function(e){ 74 canvas.isDrawing=true; 75 },false); 76 canvas.node.addEventListener(mobile=="pc"?"mouseup":"touchend",function(e){ 77 canvas.isDrawing=false; 78 },false); 79 canvas.node.addEventListener(mobile=="pc"?"mousemove":"touchmove",function(e){ 80 if(!canvas.isDrawing){return;} 81 if(type=="Android"){ 82 var x= e.changedTouches[0].pageX-this.offsetLeft; 83 var y= e.changedTouches[0].pageY-this.offsetTop; 84 }else{ 85 var x= e.pageX-this.offsetLeft; 86 var y= e.pageY-this.offsetTop; 87 } 88 var radius=20; 89 var fillcolor="#ff0000"; 90 //在源图像外显示目标图像。只有源图像外的目标图像部分会被显示,源图像是透明的。 91 ctx.globalCompositeOperation="destination-out"; 92 ctx.fillCircle(x,y,radius,fillcolor); 93 },false); 94 } 95 var container=document.getElementById('myCanvas'); 96 init(container,1000,600,"#696868",mobile); 97 })(); 98 99 100 script> 101 html>

效果图一:

效果图二:


推荐阅读
  • 理解文档对象模型(DOM)
    本文介绍了文档对象模型(DOM)的基本概念,包括其作为HTML文档的节点树结构,以及如何通过JavaScript操作DOM来实现网页的动态交互。 ... [详细]
  • CentOS 7.2 配置防火墙端口开放
    本文介绍如何在 CentOS 7.2 系统上配置防火墙以开放特定的服务端口,包括 FTP 服务的临时与永久开放方法,以及如何验证配置是否生效。 ... [详细]
  • 优化Input Checkbox与Label文本对齐的方法
    本文探讨了在网页设计中,如何有效解决input checkbox与label文字不对齐的问题。通过具体的代码实例和解决方案,帮助开发者实现更加美观的用户界面。 ... [详细]
  • JESD204C 入门:第2部分新特性及其内容
    本文内容来自ADI的技术文章,作者:DelJones原网址为:https:www.analog.comcnanalog-dialoguea ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 本文详细介绍了在使用Socket进行网络编程时,遇到链接器错误`undefined reference to WSAStartup@8`的解决方案,适用于多种开发环境。 ... [详细]
  • 本文探讨了在C语言编程中,如何有效避免多文件项目中的重定义问题,通过合理使用预处理器指令和extern关键字,确保代码的健壮性和可维护性。 ... [详细]
  • python开发mysql:单表查询&多表查询
    一单表查询,以下是表内容二多表查询,一下是表内容三总结&表创建过程单 ... [详细]
  • 本文探讨了如何通过WebBrowser控件在用户点击输入框时自动显示图片验证码。该过程可能涉及JavaScript事件的触发与响应。 ... [详细]
  • MacOS 重装指南
    本文详细介绍了如何通过U盘启动并重新安装MacOS,包括遇到安装问题时的解决方案。 ... [详细]
  • 如何恢复CAD中意外丢失的图纸数据
    当使用CAD进行绘图时,因突然断电或其他原因导致计算机关闭可能会造成工作数据的丢失。然而,通过利用CAD软件的自动保存功能,用户通常能够恢复至最近一次自动保存的数据状态。 ... [详细]
  • 本文深入探讨 PHPCMS 平台中的字符串截取函数 str_cut 的使用方法,该函数常用于控制输出的标题或内容摘要长度,有效避免因过长的文本导致的页面布局问题。通过本文,读者将掌握如何灵活运用此函数,包括处理 HTML 标签等高级技巧。 ... [详细]
  • 探讨HTML中的DIV样式难题
    本文深入分析了HTML中常见的DIV样式问题,并提供了有效的解决策略。适合所有对Web前端开发感兴趣的读者。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
author-avatar
tql
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有