GithubHelp home page GithubHelp logo

franslee / lucky-card Goto Github PK

View Code? Open in Web Editor NEW
207.0 8.0 66.0 90 KB

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

License: MIT License

HTML 10.21% CSS 1.60% JavaScript 88.19%

lucky-card's Introduction

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();
});

lucky-card's People

Contributors

franslee avatar liamghenry avatar yanfei-qiao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lucky-card's Issues

回调函数会重复执行

刮完后执行回调函数,然后再摸任何位置都会执行一次回调函数,出现在微信浏览器中

刮层断断续续

作者,你好,我的项目中采用了你的插件,但在iphone6的微信中,刮层的时候手指滑过的地方会出断断续续的刮掉的情况,请问怎么处理啊?

循环

循环写的好像有点问题。。。

coverImg 设置不起作用

用官方测试代码,设置coverImg后没有起作用

LuckyCard.case({coverImg:'./demo.jpg'});

测试后发现,需要修改源代码:
_this.opt[k] && (_this.opt[k] = item[k]);
修改为:
(_this.opt[k] = item[k]) && _this.opt[k];

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.