HTML5 Canvas实现刮刮卡效果实例
HTML:
<style>
#canvas {
border: 1px solid blue;
position: absolute;
left: 10px;
top: 10px;
background:url(../Images/1.jpg) no-repeat center center;
background-size:contain;
}
</style>
<canvas id="canvas"></canvas>
一、解决方案1是使用clearRect清空鼠标位置的像素
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.fillStyle = 'gray';
ctx.rect(0, 0, canvas.width, canvas.height);
ctx.fill();
//解决方案1是使用clearRect清空鼠标位置的像素
var isClear = false;
//设置清空部分
canvas.onmousedown = function (ev) {
isClear = true;
}
canvas.onmouseup = function () {
isClear = false;
}
canvas.onmousemove = function (ev) {
if (isClear == false)
return;
ev = ev || window.event;
//清空像素,根据当前所在点
var curX = ev.clientX - canvas.offsetLeft;
var curY = ev.clientY - canvas.offsetTop;
var step = 20;
ctx.clearRect(curX - step / 2, curY - step / 2,
step, step);
ev.stopPropagation();
}
二、解决方案2是使用globalCompositeOperation,重叠处理,重叠的透明处理
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.fillStyle = 'gray';
ctx.rect(0, 0, canvas.width, canvas.height);
ctx.fill(); //解决方案2是使用globalCompositeOperation,重叠处理
//优点使用 fill() 不限制是否是矩形
//在与源不重叠的区域上保留目标。其他部分都变成透明的。
ctx.globalCompositeOperation = 'destination-out';
var isClear = false;
//设置清空部分
canvas.onmousedown = function (ev) {
isClear = true;
}
canvas.onmouseup = function () {
isClear = false;
}
canvas.onmousemove = function (ev) {
if (isClear == false)
return;
ev = ev || window.event;
//清空像素,根据当前所在点
var curX = ev.clientX - canvas.offsetLeft;
var curY = ev.clientY - canvas.offsetTop;
var step = 10;
ctx.beginPath();
ctx.arc(curX, curY, step, 0, Math.PI * 2, false);
ctx.fill();
ev.stopPropagation();
}
HTML5 Canvas实现刮刮卡效果实例的更多相关文章
- 经典!HTML5 Canvas 模拟可撕裂布料效果
这是一个模拟可撕裂布料效果的 HTML5 Canvas 应用演示,效果逼真.你会看到,借助 Canvas 的强大绘图和动画功能,只需很少的代码就能实现让您屏息凝神的效果. 温馨提示:为保证最佳的效果, ...
- HTML5 Canvas实战之刮奖效果
近年来由于移动设备对HTML5的较好支持,经常有活动用刮奖的效果,最近也在看H5方面的内容,就自己实现了一个,现分享出来跟大家交流. 1.效果 2.原理 原理很简单,就是在刮奖区添加两个canvas, ...
- 用HTML5 Canvas 做擦除及扩散效果
2013年的时候曾经使用canvas实现了一个擦除效果的需求,即模拟用户在模糊的玻璃上擦除水雾看到清晰景色的交互效果.好在2012年的时候学习HTML5的时候研究过canvas了,所以在比较短的时间内 ...
- [ html canvas 模仿支付宝刮刮卡效果 ] canvas绘图属性 模仿支付宝刮刮卡效果实例演示
<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...
- HTML5 Canvas实战之刮奖效果【转】
开源项目地址:https://github.com/artwl/Lottery 作者博客地址:http://www.cnblogs.com/jscode/p/3580878.html 谢谢浏览!
- HTML5 Canvas实现黑客帝国文字掉落效果
效果: 原理: 用canvas逐行输出文字,然后让背景颜色逐渐加深,再随机中断某些列. 代码: HTML: <canvas id="c"></canvas> ...
- html5 canvas 一个漫天飞雪的效果
很棒的下雪效果 代码奉上 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...
- 基于 HTML5 Canvas 的 3D 热力云图效果
前言 数据蕴藏价值,但数据的价值需要用 IT 技术去发现.探索,可视化可以帮助人更好的去分析数据,信息的质量很大程度上依赖于其呈现方式.在数据分析上,热力图无疑是一种很好的方式.在很多行业中都有着广泛 ...
- HTML5 Canvas 填充与描边(Fill And Stroke)
HTML5 Canvas 填充与描边(Fill And Stroke) 演示HTML5 Canvas Fill 与Stroke文字效果,基于Canvas如何实 现纹理填充与描边. 一:颜色填充与描边 ...
随机推荐
- 【POJ1275】Cashier Employment
题目: Description A supermarket in Tehran is open 24 hours a day every day and needs a number of cashi ...
- 《Effective C++》条款14 总是让base class拥有virtual destructor
有时,一个类想跟踪它有多少个对象存在.一个简单的方法是创建一个静态类成员来统计对象的个数.这个成员被初始化为0,在构造函数里加1,析构函数里减1.(条款m26里说明了如何把这种方法封装起来以便很容易地 ...
- 关于IOS开发者账号一点总结
经过查阅相关资料,我扼要总结了以下几点内容. 一.开发者账号类型 个人账号 99美金/年 公司账号 99 企业账号 299 教育账号 0 二.开发者账号有无比较 如果有: 可以真机测试 发布的应用可以 ...
- poj1637
混合图欧拉回路首先先明确基本概念连通的无向图存在欧拉回路当且仅当不存在奇点连通的有向图当且仅当每个点入度=出度这道题我们显然应该当作连通的有向图来做这个问题的困难之处在于我不知道应该从无向边的什么方向 ...
- Linux Shell编程(25)——I/O 重定向
默认情况下始终有3个"文件"处于打开状态, stdin (键盘), stdout (屏幕), and stderr (错误消息输出到屏幕上). 这3个文件和其他打开的文件都可以被重 ...
- Linux Shell编程(20)——基本命令
新手必须要掌握的初级命令ls基本的列出所有文件的命令.但是往往就是因为这个命令太简单,所以我们总是低估它.比如,用 -R 选项,这是递归选项,ls 将会以目录树的形式列出所有文件, 另一个很有用的选项 ...
- Android 逐帧动画isRunning 一直返回true的问题
AnimationDrawabl主要通过xml实现逐帧动画,SDK实例如下: An AnimationDrawable defined in XML consists of a single < ...
- Linux学习笔记6——映射虚拟内存
使用到两个函数mmap:用于分配内存:munmap:用于释放内存. mmap的原型如下: void *mmap( void *start, //指定映射的虚拟地址 0由系统指定开始位置 ...
- ubuntu安装jdk1.8
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-i ...
- HDOJ/HDU 2549 壮志难酬(取小数点后几位~)
Problem Description 话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,"天将降大任于斯人也,必先 ...