在好例子网,分享、交流、成长!
您当前所在位置:首页CSS 开发实例Box Model → html5刮刮卡 抽奖 实例源码下载

html5刮刮卡 抽奖 实例源码下载

Box Model

下载此实例
  • 开发语言:CSS
  • 实例大小:0.06M
  • 下载次数:12
  • 浏览次数:245
  • 发布时间:2017-05-13
  • 实例类别:Box Model
  • 发 布 人:crazycode
  • 文件格式:.zip
  • 所需积分:2
 相关标签: HTML5 实例 HTML 抽奖 刮刮卡

实例介绍

【实例简介】


说明

canvas刮奖组件

使用

<div id="lotteryArea"></div>
new scratchLottery(ElementID, {
    lottery : '一等奖\niPhone6 一部\n恭喜您获奖',
    mask : 'images/mask.png',
    text : { //font : 'Arial', margin: [.2,.2]
    }, //scratchType : 'point', openPct : 40, onscratch : function (percent) { console.log('已刮开:': percent '%');
    }, onopen : function (percent) { console.log('刮开了 ': percent '%,移除遮罩');
    }
});

默认参数说明

Options = {
    lottery : '谢谢参与\n分享到微博再来一次',// 必须,奖项背景,刮出后显示的东西,可以是文字(支持换行)、图片
    mask : '#ccc',          // 必须,遮罩层,可以是颜色值、图片
    width : 0,          // 宽度,若为0,则匹配box宽度
    height : 0,         // 高度,若为0,则匹配box高度

    lotteryCanvas : null,   // 背景Canvas对象,为空则自动创建
    lotteryType : null,     // 背景选项(text|image),默认自动检测lottery,可强制指定
    text : {                // 字体样式,lotteryType为text启用
        bgColor : '#fff',           // 背景色
        font : 'Microsoft YaHei',   // 字体
        style : 'Bold',             // 第一行文字样式,(font-style|font-variant|font-weight)
        size : 0,                   // 第一行文字大小,为0则自动计算
        color : '#f60',             // 第一行文字颜色
        styleOther : '',            // 其他文字样式
        sizeOther : 0,              // 其他文字大小,为0则自动计算
        colorOther : '#666',        // 其他文字颜色
        margin :[.15,.1],           // 区域四周留白,[上下,左右](单位%)
        space : 0,                  // 文字行间距,为0则自动计算
        align : 'center'            // 对齐方式(left|right|center)
    },
    useImageSize : false,   // 跟随图片大小,lotteryType为image启用

    maskCanvas : null,      // 遮罩Canvas对象,为空则自动创建
    maskType : null,        // 遮罩选项(color|image),默认自动检测mask,可强制指定

    scratchType : 'line',   // 刮擦类型,(line|point)
    scratchWidth : 0,       // 刮擦画笔宽度,为0则自动计算
    openPct : 50,           // 刮开百分比,回调onopen
    onscratch : null,       // 刮擦回调,参数(擦除面积百分比)
    onopen : null           // 刮擦完毕回调,参数(擦除面积百分比)
};


【实例截图】

【核心代码】

<!doctype html>
<html>
<head>
	<meta charset="UTF-8">
	<title>scratchLottery demo</title>
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
	<style type='text/css'>
		body {
			height:1000px;
		}

		#lotteryArea {
			position:relative;
			width:300px;
			height:156px;
		}
		#lotteryArea canvas {width:100%; height:100%;}

		#drawPercent {
			color:#F60;
		}
	</style>

</head>
<body>
<div><button id="freshBtn">刷新</button> <button id="resizeBtn">切换尺寸</button> <label>已刮开 <span id="drawPercent">0%</span> 区域。</label></div>
<div id="lotteryArea"></div>

<script type='text/javascript' src="js/scratchLottery.source.js"></script>
<script>
	var lottery,
		area = document.getElementById('lotteryArea'),
		pctNode = document.getElementById('drawPercent');

	window.onload = function() {
		lottery = new scratchLottery('lotteryArea', {
			//lottery : 'http://www.baidu.com/img/bdlogo.gif',
    		lottery : '一等奖\niPhone6 一部\n恭喜您获奖',
			//lottery : 'First prize\nCongratulations!',
			mask : 'images/mask.png',
			text : {
				//font : 'Arial',
				margin: [.2,.2]
			},
			//scratchType : 'point',
			openPct : 40,
			onscratch : drawPercent,
			onopen : openLottery
		});

		// 刷新
		document.getElementById('freshBtn').onclick = function() {
			var txt = randomStr(10);
			console.info('fresh: '  txt);
			pctNode.innerHTML = '0%';
			lottery.init(txt, 'text');
		};

		// 切换尺寸
		document.getElementById('resizeBtn').onclick = function() {
			var width = area.offsetWidth,
				size = [300, 156];
			if(width==300) {
				size = [500, 260];
				area.style.width = size[0] 'px';
				area.style.height = size[1] 'px';
			}else{
				area.style.cssText = '';
			}

			lottery.resize(size[0], size[1]);
		};
	};



	function drawPercent(percent) {
		pctNode.innerHTML = percent '%';
	}

	function openLottery(percent) {
		alert('恭喜呀~~~~'  percent);
	}

	function randomStr(len) {
		var text = "";
		var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
		for(var i = 0; i<len; i  )
			text  = possible.charAt(Math.floor(Math.random()*possible.length));
		return text;
	}

	function parseObject (obj, t){
		if(typeof(obj)!='object') return '';
		t = t ? t : 1;

		var result = '', tab = new Array(t).join('\t');
		for(var i in obj) {
			if(obj[i] && typeof obj[i]=='object' && !obj[i].length) {
				result  = tab   i  ':{\n'  parseObject(obj[i], t 1)  '}\n';
			}else {
				result  = tab   i  ':'  obj[i]  '\n';
			}
		}

		return result;
	}
</script>
</body>
</html>

实例下载地址

html5刮刮卡 抽奖 实例源码下载

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警