Skip to content

基于HTML5 Canvas的刮奖(刮刮卡)小控件(Scratch card based on HTML5 Canvas)

License

Notifications You must be signed in to change notification settings

fanwei1991/lucky-card

This branch is up to date with Franslee/lucky-card:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Aug 17, 2017
55e15f3 · Aug 17, 2017

History

15 Commits
Aug 17, 2017
Aug 17, 2017
Sep 14, 2015
Sep 14, 2015
Sep 15, 2015
Sep 15, 2015
Sep 14, 2015
Sep 14, 2015
Aug 17, 2017

Repository files navigation

lucky-card license

lucky-card是一个实现刮刮卡刮奖效果的JavaScript小控件,基于HTML5 Canvas,采用原生js编写,不依赖任何类库,支持AMD/CMD模块化加载,支持iOS、Android和桌面浏览器(IE>=9),Windows Phone未测。

DEMO

请用手机扫描以下二维码,桌面浏览器可以点击这里 #github

用法

HTML结构

<div id="scratch">
    <div id="card">¥5000000元</div>
</div>

在页面中引入控件所需样式表文件lucky-card.css

<link rel="stylesheet" href="../dist/lucky-card.css">

以上css文件只有控件所必需的样式,刮刮卡样式请根据需要自行编写(可参考DEMO页面)

引入lucky-card.js/lucky-card.min.js文件

<script src='../dist/lucky-card.js'></script>

在确保页面相关DOM加载完毕(如写在页面底部,或document的DOMContentLoaded事件处理函数中)之后,初始化控件

LuckyCard.case();

可配置项与回调函数

初始化lucky-card控件时,支持传入一个JSON对象和(或)一个回调函数,用于配置控件功能/设置回调函数

LuckyCard.case(settings,callback);
  • 参数settings是一个JSON对象,可选,用于配置控件功能
  • 参数callback是回调函数,可选,也可以写在settings中

可配置项(settings)一览

key 类型 默认值 描述
coverColor string "#C5C5C5" 刮开层的颜色,未设置coverImg时生效,支持十六进制和rgba写法
coverImg string "" 刮开层可以是一张图片,在这里设置图片地址,一旦设置此项,coverColor将失效。(注意:图片地址不支持跨域,如果跨域可以考虑将先其转成Data URI)
ratio number 0.8 触发回调函数时刮开面积占总面积的比例,超过这个比例回调就触发。建议取值在0到1之间。
callback function null 回调函数,在刮开面积占总面积的比例超过设定值时触发,亦可作为一个独立的参数存在。回调函数内可以调用this.clearCover()方法清除掉刮开层的所有像素。
//基本用法
LuckyCard.case({coverColor:'#CCCCCC',ratio:.6,callback:function(){alert('中奖啦!')}});

//刮开层支持使用图片,但图片不能跨域,如果跨域可以考虑将先其转成Data URI,再设置
LuckyCard.case({coverImg:'./demo.jpg'});

//callback可作为一个独立的参数存在
LuckyCard.case(function(){
	//清除掉刮开层的所有像素
	this.clearCover();
});

About

基于HTML5 Canvas的刮奖(刮刮卡)小控件(Scratch card based on HTML5 Canvas)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 88.2%
  • HTML 10.2%
  • CSS 1.6%