1.0.0 • Published 3 years ago

scratch-me v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

ScratchMe

一个基于canvas实现“刮刮卡”功能的js库。

安装

使用npm:

$ npm install scratch-me

直接引入<script>:

<script src="//cdn.jsdelivr.net/npm/scratch-me@0.0.1/dist/scratch-me.min.js"></script>

示例

查看demo页面

快速开始

首先需要在html中放置一个容器:

<div class="container"></div>

在js中引入ScratchCanvas并将容器元素传递给构造函数后调用实例的init方法即可:

import ScratchMe from 'scratch-me'

const containerElm = document.querySelector('.container')
const scratchMe = new ScratchMe(containerElm)
scratchMe.init()

配置

在创建实例时通过向第二个参数传入一个对象进行配置:

const scratchMe = new ScratchMe(elm, {/* 配置项... */})
scratchMe.init()

可用配置项:

选项名类型默认值可选值描述
bgStringnull有效的图片url若bg的值为有效的图片url,则会在蒙层下自动生成背景
maskString#ccc有效的颜色字符串或图片url蒙层的填充内容
widthNumbernull正整数生成的canvas标签的width属性值,不设置该值时canvas的width将会是容器元素的实际宽度
heightNumbernull正整数生成的canvas标签的height属性值,不设置该值时canvas的height将会是容器元素的实际高度
brushSizeNumber25正整数笔刷(半径)大小
maxPercentNumber100正整数激活百分比 到该值就显示结果
scratchAreaObj{startX:0, startY:0, areaWidth:0, areaHeight:0}-设置该区域内可以“刮除”。startX,startY 起点;areaWidth:区域宽度;areaHeight:区域长度
brushPressNumber10~1之间任意数字笔刷压强
onCreatedFunctionnull-实例初始化完毕被插入到dom节点后的回调函数
onScratchFunctionnull-"刮除"蒙层时的回调函数,接收一个参数,该参数值为已"刮除"面积与总面积的百分比(对于一个像素掉,"已刮除"的定义是该像素点透明度小于0.25,而不是该像素点必须被mousedown/mousemove等事件处理过)
onEndFunctionnull-"刮除"蒙层结束后 回调函数,接收一个参数,该参数值为已"刮除"面积与总面积的百分比(对于一个像素掉,"已刮除"的定义是该像素点透明度小于0.25,而不是该像素点必须被mousedown/mousemove等事件处理过)
throttleWaitNumber0正数节流函数的间隔时间参数,如果在使用过程中发现明显卡顿(刮除不连续属于正常现象)可以尝试调高该参数值

实例API

API名描述
init()初始化并将生成的canvas插入到创建实例时传入的容器元素节点中,插入后会触发回调函数onCreated

License

MIT