<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<style type="text/css">
*{
padding: 0;
margin: 0;
} .wap{
width: 200px;
height: 40px;
position: relative;
margin: 20px auto;
border: 1px solid #3385FF;
}
#canvas,.text{
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 40px;
}
.text{
line-height: 40px;
text-align: center;
font-size: 30px;
color: gold;
z-index: 1;
display: none;
}
#canvas{
z-index: 10;
}
</style>
</head>
<body> <div class="wap">
<div class="text">一等奖</div>
<canvas id="canvas" width="200" height="40" ></canvas>
</div> </body>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var pos = $('.wap').offset(); ctx.fillStyle = '#ccc'; ctx.fillRect(0,0,canvas.width,canvas.height); $('.text').css({display:"block"});
ctx.globalCompositeOperation = 'destination-out'; ctx.beginPath();
ctx.fillStyle = 'red';
ctx.strokeStyle = 'red'
ctx.lineWidth = 5; canvas.onmousedown = function(e){
this.run = true;
ctx.moveTo(e.clientX-pos.left,e.clientY-pos.top);
} canvas.onmousemove = function(e){
if(this.run){
console.log(e.clientX-pos.left,e.clientY-pos.top)
ctx.lineTo(e.clientX-pos.left,e.clientY-pos.top);
ctx.stroke();
}
} canvas.onmouseup = function(e){
ctx.stroke();
this.run = false;
} /*
*copy:只绘制新图形,删除其它的所有内容
* darker:在图形重叠的地方,其颜色由两个颜色值相减后决定
* destination-atop:画布上已有的内容只会在它和新图形重叠的地方保留,新图形绘制于内容之后
* destination-in:在新图形及画布上已有图形重叠的地方,画布上已有的重叠内容都保留。所有其他的内容都透明
* destination-out:画布原始内容没有重叠的保留,重叠的和新画的,都是透明(刮刮乐);
* destination-over:新图形绘制于画布上已有内容的后面
* ligther:在图形重叠的地方,其颜色由两个颜色值相加后决定
* source-atop:只有在新图形和画布上已有内容重叠的地方才绘制新的图形
* source-in:在新图形和画布上已有内容重叠的地方才绘制新图形。其他内容均透明
* source-out:只有在新图形和画布上已有内容不重叠的地方才绘制新的图形
* source-over:新图形绘制于画布已有图形的顶部。默认设置
* xor:重叠的地方透明,其他的地方正常画
*
*
* */ </script>
</html>

  

canvas 写一个刮刮乐抽奖的更多相关文章

  1. python 写一个生成大乐透号码的程序

    """ 写一个生成大乐透号码的程序 生成随机号码:大乐透分前区号码和后区号码, 前区号码是从01-35中无重复地取5个号码, 后区号码是从01-12中无重复地取2个号码, ...

  2. 用Canvas写一个简单的游戏--别踩白块儿

    第一次写博客也不知怎么写,反正就按照我自己的想法来吧!怎么说呢?还是不要扯那些多余的话了,直接上正题吧! 第一次用canvas写游戏,所以挑个简单实现点的来干:别踩白块儿,其他那些怎么操作的那些就不用 ...

  3. html5入门:教你用canvas写一个时钟

    今天的时间比较充裕,心血来潮,为大家分享一个html5的小例子,希望对刚学html5或者是没学html5正准备学的“童鞋们”展示一个小案例,希望对你们的学习有帮助!高手嘛!请跳过吧! 好了,闲话少数, ...

  4. 利用canvas写一个验证码小功能

    刚刚开始接触canvas,写个验证码小功能练练手,实现效果图如下: 主要代码如下: html <!DOCTYPE html> <html lang="en"> ...

  5. 一步一步用Canvas写一个贪吃蛇

    之前在慕课网看了几集Canvas的视频,一直想着写点东西练练手.感觉贪吃蛇算是比较简单的了,当年大学的时候还写过C语言字符版的,没想到还是遇到了很多问题. 最终效果如下(图太大的话 时间太长 录制gi ...

  6. 用Canvas写一个炫酷的时间更新动画玩玩

    正文必须要写点什么...   // '; var WINDOW_WIDTH = 913; var WINDOW_HEIGHT = 400; var RADIUS = 7; //球半径 var NUMB ...

  7. 原生js 基于canvas写一个简单的前端 截图工具

    先看效果 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  8. 用canvas写一个简易画图工具

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

  9. 用Canvas画一个刮刮乐

    Canvas 通过 JavaScript 来绘制 2D图形.Canvas 是逐像素进行渲染的.开发者可以通过javascript脚本实现任意绘图.Canvas元素是HTML5的一部分,允许脚本语言动态 ...

随机推荐

  1. centos linux7的一些操作

    进入centos7的一些界面后,按ctrl+alt+F2,则可进入全shell界面,不过要登录root的密码: 从全shell转为gnome 界面窗口,按alt+F1: *************** ...

  2. *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED

    *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED 在软件已经执行破解仍然出现,是因为工程是破解前建立的,要先执行 ...

  3. PHP利用反射根据类名反向寻找类所在文件

    有时候分析源码时,会被博大精深的层层代码搞得晕头转向,不知道类是定义在哪个文件里的,有时候IDE所提供的方法声明未必准确.在这种情况下,我们可以利用反射找到类所在的文件. 在你发现实例化类的地方(例如 ...

  4. 深度学习中的batch的大小对学习效果的影响

    Batch_size参数的作用:决定了下降的方向 极端一: batch_size为全数据集(Full Batch Learning): 好处: 1.由全数据集确定的方向能够更好地代表样本总体,从而更准 ...

  5. Vue SSR配合Java的Javascript引擎j2v8实现服务端渲染1概述

    原文地址 http://www.terwergreen.com/post/vue-ssr-j2v8-1.html 初步实现方案探索(Node环境) // 第 1 步:创建一个 Vue 实例 const ...

  6. nslookup dig iptables,sudoer,jenkins

    [NSLOOKUPm]http://roclinux.cn/?p=2441 nslookup media.ucampus.unipus.cn [DIG]http://roclinux.cn/?p=24 ...

  7. day0320 时间模块 collection模块

    一. TIME模块 python提供了一个time和calendar模块可以用于格式化日期和时间. 时间间隔一秒为单位. 每个时间戳都以1970年1月1日午夜经过多长时间来表示. 1.时间戳 函数ti ...

  8. [archlinux][crypto] 从T450迁移archlinux操作系统至T460s笔记本

    从T450笔记本迁移archlinux操作系统之T460s笔记本,同时: 1.  使用cryptsetup做底层块加密. 2.    全新使用btrfs文件系统. 一,硬盘分区. 1T的SSD,使用U ...

  9. 在VMware运行Linux下,密码错误的原因

    抱歉,没有奏效,请再试一次 密码明明是正确的,但依旧报错 原因: 密码中有大写,但键盘中的大写按键在登录界面无效,需要按住shift才能实现大写.

  10. (转载)centos7启用端口

    转载:原文地址:https://www.cnblogs.com/moxiaoan/p/5683743.html   1.firewalld的基本使用 启动: systemctl start firew ...