canvas刮刮卡插件ScratchCard

所属分类:其他-游戏

 29318  333  查看评论 (15)
分享到微信朋友圈
X
canvas刮刮卡插件ScratchCard ie兼容10

简要教程

ScratchCard是一款支持移动手机的HTML5 canvas刮刮卡插件。该刮刮卡插件支持移动触摸事件,提供刮卡的回调函数,简单易用,效果非常不错。

使用方法

在页面中引入Scratch.js文件。

<script type="text/javascript" src="js/Scratch.js"></script>

HTML结构

使用下面的HTML结构来制作一个刮刮卡:

<div class="scratch_container">
  <div class="scratch_viewport">
    <!-- result picture -->
    <canvas id="js-scratch-canvas"></canvas>
  </div>
</div>

CSS样式

为刮刮卡添加下面的CSS样式。

.scratch_container {
  position: relative;
  margin: 0 auto;
  max-width: 1024px;
}
 
.scratch_viewport {
  position: relative;
  width: 250px;
  height: 250px;
  margin: 0 auto;
  z-index: 0;
}
 
.scratch_picture-under {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  z-index: -1;
}
 
.scratch_container canvas {
  position: relative;
  width: 100%;
  height: auto;
  z-index: 1;
}

初始化插件

在页面页面底部<body>标记结束之前,使用下面的代码来实例化一个刮刮卡对象。

var scratch = new Scratch({
    canvasId: 'js-scratch-canvas',
    imageBackground: 'loose.jpg',
    pictureOver: 'foreground.jpg',
    cursor: {
        png: 'piece.png',
        cur: 'piece.cur',
        x: '20',
        y: '17'
    },
    radius: 20,
    nPoints: 100,
    percent: 50,
    callback: function () {
      alert('I am Callback.');
    },
    pointSize: { x: 3, y: 3}
});

配置参数

该Canvas刮刮卡插件的可用配置参数有:

  • canvasId:canvas的id。

  • imageBackground:背景图片(刮开后呈现的图片)。

  • pictureOver:前景图片。

  • sceneWidth:canvas的宽度。

  • sceneHeight:canvas的高度。

  • radius:清除区域的半径。

  • nPoints:清除区域的杂点数量。

  • percent:在清除多少区域之后清空canvas。

  • cursor:光标。

  • png:png格式的光标。

  • x:Move position x。

  • y:Move position y。

  • cur:cur格式的光标(IE使用)。


相关插件-游戏

飞机大战(一共有四个模式)

模式分别为:简单 中等 困难 开挂模式,代码有详细注释
  游戏
 26698  340

原生js实现五子棋

利用原生js实现五子棋 ,可以双人对战,AI只能对战,有部分注释。
  游戏
 23800  242

看图猜成语(原创)

看图猜成语应用源码示例
  游戏
 24901  306

js打字游戏

html5盲打高手打飞字游戏
  游戏
 39115  475

讨论这个项目(15)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    Devil灬旋律 0
    2018/3/7 17:15:30
    现在在移动端苹果手机上遇到一个问题,在苹果手机上的效果不好,在图片刮的过程中,屏幕还是会随着移动,导致感觉晃来晃去。阻止默认事件、阻止冒泡都试过,不好用,不知道是什么原因。 回复
    as935555 0
    2017/8/1 19:59:28

    浏览器只执行一次回调函数没有错,但是浏览器模拟移动端的时候只要鼠标一直按着就一直执行回调函数

        as9355550
        2017/8/1 20:01:55

        怎么解决啊

        Devil灬旋律0
        2018/3/7 17:17:29
        在插件js里边,监听touchmove事件的那里改一下。
    回复
    绿茶依雪 0
    2017/4/13 11:09:14

    自定义canvas的宽高后,触摸区域和实际消除的区域有偏离 

    回复
    张莎 0
    2017/2/23 11:12:42

    不能用啊,没有回调函数

        一夕流年╁0
        2018/2/11 17:09:27
        放在服务器环境才行 或者用webstm打开
        Asher0
        2020/5/22 9:33:41
        为什么需要在环境下才能打开啊
        西瓜0
        2020/5/22 13:52:49
        getImageData此方法不允许操作非此域名外的图片资源,即使是子域也不行。如果本地想预览可以把图片转换成base64
    回复
    草丛没有人 0
    2017/2/3 11:53:54

    在手机端执行多次变的很卡

    回复
    hynn 0
    2017/1/1 14:01:25

    想在一个页面里面插入多个刮刮卡,怎么做到呢?

    回复
    正品前端-叶德倾 0
    2016/11/18 11:11:09
    手机上回调涵数不执行??
        红叶0
        2016/11/18 12:11:21
        运行在服务器环境效果没问题的
    回复
    梦晓 0
    2016/11/10 8:11:27
    挺好玩的
        梦晓0
        2016/11/10 8:11:57
        不错不错
    回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复