加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
index.html 16.95 KB
一键复制 编辑 原始数据 按行查看 历史
Colde 提交于 2019-05-27 16:51 . first commit
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>中科华洋高交会抽奖系统</title>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery-1.10.2.js"></script>
<script type="text/javascript" src="js/awardRotate.js"></script>
<script type="text/javascript" src="common/toogle.js"></script>
<script type="text/javascript">
var turnplate={
restaraunts:[], //大转盘奖品名称
colors:[], //大转盘奖品区块对应背景颜色
outsideRadius:192, //大转盘外圆的半径
textRadius:155, //大转盘奖品位置距离圆心的距离
insideRadius:68, //大转盘内圆的半径
startAngle:0, //开始角度
bRotate:false //false:停止;ture:旋转
};
$(document).ready(function(){
getMyPrize();
//动态添加大转盘的奖品与奖品区域背景颜色
turnplate.restaraunts = ["特等奖挂壁新风机", "参与奖USBLED灯", "一等奖空气净化器", "参与奖USBLED灯", "三等奖蓝牙音箱", "参与奖USBLED灯 ", "二等奖空气净化器", "参与奖USBLED灯", "三等奖蓝牙音箱","参与奖USBLED灯"];
turnplate.colors = ["#F8553D", "#FFFFFF", "#50BDC4","#FFFFFF", "#70A1C7", "#FFFFFF", "#FFCB8D","#FFFFFF", "#70A1C7","#FFFFFF"];
turnplate.fontcolors=["#FFFFFF","#16BD84","#FFFFFF","#16BD84","#FFFFFF","#16BD84","#DE7E0F","#16BD84","#FFFFFF","#16BD84"]
var rotateTimeOut = function (){
$('#wheelcanvas').rotate({
angle:0,
animateTo:2160,
duration:8000,
callback:function (){
alert('网络超时,请检查您的网络设置!');
}
});
};
$('.pointer').click(function (){
if(turnplate.bRotate)return;
turnplate.bRotate = !turnplate.bRotate;
getPrizeIndex();
//获取随机数(奖品个数范围内)
//var item = rnd(1,turnplate.restaraunts.length);
//奖品数量等于10,指针落在对应奖品区域的中心角度[252, 216, 180, 144, 108, 72, 36, 360, 324, 288]
//rotateFn(item, turnplate.restaraunts[item-1]);
/* switch (item) {
case 1:
rotateFn(252, turnplate.restaraunts[0]);
break;
case 2:
rotateFn(216, turnplate.restaraunts[1]);
break;
case 3:
rotateFn(180, turnplate.restaraunts[2]);
break;
case 4:
rotateFn(144, turnplate.restaraunts[3]);
break;
case 5:
rotateFn(108, turnplate.restaraunts[4]);
break;
case 6:
rotateFn(72, turnplate.restaraunts[5]);
break;
case 7:
rotateFn(36, turnplate.restaraunts[6]);
break;
case 8:
rotateFn(360, turnplate.restaraunts[7]);
break;
case 9:
rotateFn(324, turnplate.restaraunts[8]);
break;
case 10:
rotateFn(288, turnplate.restaraunts[9]);
break;
} */
//console.log(item);
});
});
function exchagePrize(){
var id = $("#prizeRecordId").val();
//alert("id="+id);
$.ajax({
type: 'POST',
url: urlConfig.shost+"/prize/exchange",
data: "id="+id,
dataType: 'json',
success: function (data) {
if(200==data.status){
if(null!=data.data&&undefined!=data.data){
alert(data.data.msg);
}
}else{
alert(data.msg)
}
},
error: function () {
alert("出错了,请重试!");
}
});
}
function getOpenId(){
var prizehref = window.location.href;
var len = prizehref.indexOf("openId=");
if(len>=0){
var openId = prizehref.substring(len+"openId=".length,prizehref.length);
//alert(openId);
return openId;
}
return null;
}
function getMyPrize(){
var openId = getOpenId();
if(null!=openId){
$.ajax({
type: 'POST',
url: urlConfig.shost+"/prize/getPrizeRecord",
data: "openId="+openId,
dataType: 'json',
content:'application/x-www-form-urlencoded',
success: function (res) {
if(200==res.status){
if(null!=res.data&&undefined!=res.data){
var prizeStatus = '';
if(400==res.data.isExchange){
prizeStatus = '未领取';
}else if(401==res.data.isExchange){
prizeStatus = '已领取';
}else{
prizeStatus = '---';
}
$("#myprize").css("display","");
$("#myprize").find("ul").eq(0).html(
"<li>奖品:【"+res.data.desc+"】&nbsp;&nbsp;"+res.data.name+"</li>"+
"<li>兑奖码:"+res.data.id+"</li>"+
"<li>状态:"+prizeStatus+"</li>"+
"<li>获奖时间:"+res.data.prizetime+"</li>"
);
//console.log(res.data.id);
$("#prizeRecordId").val(res.data.id);
//console.log($("#prizeRecordId").val());
}
//console.log(res)
//alert($("#prizeRecordId").val());
}else{
alert(res.msg)
}
},
error: function () {
alert("出错了,请重试!");
}
});
}else{
alert("出错了,请重试!");
}
}
//旋转转盘 item:奖品位置; txt:提示语;
var rotateFn = function (item, txt){
var angles = item * (360 / turnplate.restaraunts.length) - (360 / (turnplate.restaraunts.length*2));
if(angles<270){
angles = 270 - angles;
}else{
angles = 360 - angles + 270;
}
$('#wheelcanvas').stopRotate();
$('#wheelcanvas').rotate({
angle:0,
animateTo:angles+1800,
duration:8000,
callback:function (){
//alert(txt);
if(item==2){//参与奖USB LED灯1支
$(".carry").css("display","block").css("background","url(images/USB.png)");
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');
//width: 100%;height: 25rem;position: fixed;top: 15%;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==1){//特等奖挂壁新风机一台
$(".carry").css("display","block").css("background","url(images/XINF.png)");
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==4){//参与奖USB LED灯1支
$(".carry").css("display","block").css("background","url(images/USB.png)")
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==3){//一等奖空气净化器森悦系列Lux
$(".carry").css("display","block").css("background","url(images/Lux.png)");
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==6){//参与奖USB LED灯1支
$(".carry").css("display","block").css("background","url(images/USB.png)")
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==5){//三等奖蓝牙音箱一台
$(".carry").css("display","block").css("background","url(images/LANYA.png)");
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==8){//参与奖USB LED灯1支
$(".carry").css("display","block").css("background","url(images/USB.png)")
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==7){//二等奖空气净化器森悦系列Wit
$(".carry").css("display","block").css("background","url(images/Wit.png)");
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==10){//参与奖USB LED灯1支
$(".carry").css("display","block").css("background","url(images/USB.png)")
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}else if(item==9){//三等奖蓝牙音箱一台
$(".carry").css("display","block").css("background","url(images/LANYA.png)");
$(".carry").css("background-size","100%").css("background-repeat","no-repeat").css("position","fixed").css("top",'15%');;
$(".carry").css("width","100%").css("height","25rem");
}
turnplate.bRotate = !turnplate.bRotate;
}
});
};
function runPrize(item){
switch (item) {
case 1:
rotateFn(1, turnplate.restaraunts[0]);
break;
case 2:
rotateFn(2, turnplate.restaraunts[1]);
break;
case 3:
rotateFn(3, turnplate.restaraunts[2]);
break;
case 4:
rotateFn(4, turnplate.restaraunts[3]);
break;
case 5:
rotateFn(5, turnplate.restaraunts[4]);
break;
case 6:
rotateFn(6, turnplate.restaraunts[5]);
break;
case 7:
rotateFn(7, turnplate.restaraunts[6]);
break;
case 8:
rotateFn(8, turnplate.restaraunts[7]);
break;
case 9:
rotateFn(9, turnplate.restaraunts[8]);
break;
case 10:
rotateFn(10, turnplate.restaraunts[9]);
break;
}
//console.log(item);
}
function getPrizeIndex() {
var rndd = rnd(1,100000);
var openId = getOpenId();
//测试代码,正式需要去掉
//if("oVuEK0jJTMYHFSNmi01FOotk9D0E"==openId){
//openId = openId+rndd;
//}
//测试代码,正式需要去掉
if(null!=openId){
$.ajax({
type: 'POST',
url: urlConfig.shost+"/prize/getPrize",
data: "openId="+openId,
dataType: 'json',
success: function (data) {
if(200==data.status){
$("#prizeRecordId").val(data.data.exchangeNum);
runPrize(data.data.prizeIndex);
}else{
turnplate.bRotate = !turnplate.bRotate;
alert(data.msg)
}
},
error: function () {
alert("出错了,请重试!");
}
});
}else{
alert("出错了,请重试!");
}
}
function rnd(n, m){
var random = Math.floor(Math.random()*(m-n+1)+n);
return random;
}
//页面所有元素加载完毕后执行drawRouletteWheel()方法对转盘进行渲染
window.onload=function(){
drawRouletteWheel();
};
function drawRouletteWheel() {
var canvas = document.getElementById("wheelcanvas");
if (canvas.getContext) {
//根据奖品个数计算圆周角度
var arc = Math.PI / (turnplate.restaraunts.length/2);
var ctx = canvas.getContext("2d");
//在给定矩形内清空一个矩形
ctx.clearRect(0,0,422,422);
//strokeStyle 属性设置或返回用于笔触的颜色、渐变或模式
//font 属性设置或返回画布上文本内容的当前字体属性
ctx.font = '16px Microsoft YaHei';
for(var i = 0; i < turnplate.restaraunts.length; i++) {
var angle = turnplate.startAngle + i * arc;
ctx.fillStyle = turnplate.colors[i];
ctx.strokeStyle = "#FFBE04";
ctx.beginPath();
//arc(x,y,r,起始角,结束角,绘制方向) 方法创建弧/曲线(用于创建圆或部分圆)
ctx.arc(211, 211, turnplate.outsideRadius, angle, angle + arc, false);
ctx.arc(211, 211, turnplate.insideRadius, angle + arc, angle, true);
ctx.stroke();
ctx.fill();
//锁画布(为了保存之前的画布状态)
ctx.save();
//----绘制奖品开始----
//ctx.fillStyle = "#16BD84";
var text = turnplate.restaraunts[i];
ctx.fillStyle = turnplate.fontcolors[i];
var line_height = 25;
//translate方法重新映射画布上的 (0,0) 位置
ctx.translate(211 + Math.cos(angle + arc / 2) * turnplate.textRadius, 211 + Math.sin(angle + arc / 2) * turnplate.textRadius);
//rotate方法旋转当前的绘图
ctx.rotate(angle + arc / 2 + Math.PI / 2);
/** 下面代码根据奖品类型、奖品名称长度渲染不同效果,如字体、颜色、图片效果。(具体根据实际情况改变) **/
if(text.indexOf("M")>0){//流量包
var texts = text.split("M");
for(var j = 0; j<texts.length; j++){
ctx.font = j == 0?'bold 20px Microsoft YaHei':'16px Microsoft YaHei';
if(j == 0){
ctx.fillText(texts[j]+"M", -ctx.measureText(texts[j]+"M").width / 2, j * line_height);
}else{
ctx.fillText(texts[j], -ctx.measureText(texts[j]).width / 2, j * line_height);
}
}
}else if(text.indexOf("M") == -1 && text.length>3){//奖品名称长度超过一定范围
text = text.substring(0,3)+"||"+text.substring(3);
var texts = text.split("||");
//console.log(texts);
for(var j = 0; j<texts.length; j++){
ctx.fillText(texts[j], -ctx.measureText(texts[j]).width / 2, j * line_height);
}
}
else{
//在画布上绘制填色的文本。文本的默认颜色是黑色
//measureText()方法返回包含一个对象,该对象包含以像素计的指定字体宽度
ctx.fillText(text, -ctx.measureText(text).width / 2, 0);
}
//添加对应图标
if(text.indexOf("一等") >=0){
ctx.fillText("Lux系列", -27, 45)
}else if(text.indexOf("二等") >=0){
ctx.fillText("Wit系列", -27, 45)
}else if(text.indexOf("特等") >=0){
ctx.fillText("1台", -15, 45)
}else if(text.indexOf("三等") >=0){
ctx.fillText("1台", -15, 45)
}
else if(text.indexOf("参与奖")>=0){
// var img= document.getElementById("sorry-img");
// img.onload=function(){
// //ctx.drawImage(img,-15,10);
// ctx.fillText("一支")
// };
// //ctx.drawImage(img,-15,10);
// ctx.fillText("一支")
ctx.fillText("1支", -15, 45)
}
//把当前画布返回(调整)到上一个save()状态之前
ctx.restore();
//----绘制奖品结束----
}
}
}
</script>
</head>
<body style="background:#EEEEEE;overflow-x:hidden;">
<img src="images/1.png" id="shan-img" style="display:none;" />
<img src="images/2.png" id="sorry-img" style="display:none;" />
<img src="images/ZI.png" style="width: 100%;"/>
<div class="banner">
<div class="turnplate" style="background-image:url(images/turnplate-bg.png);background-size:100% 100%;">
<canvas class="item" id="wheelcanvas" width="422px" height="422px"></canvas>
<img class="pointer" src="images/turnplate-pointer.png"/>
</div>
</div>
<center><img src="images/yishu.png"/></center>
<center>
<ul style="color:#939393;text-align: left;width: 70%;font-size: 15px;">
<li>抽奖时间:11月14号-18号</li>
<li>兑奖方式:凭中奖信息到活动现场领奖</li>
<li>每个用户仅限一次抽奖</li>
<li>奖品数量有限,送完即止</li>
<li>活动最终解释权归中科华洋所有</li>
</ul>
</center>
<div id = "myprize" style="display:none;">
<center><img src="images/myprize.png"/></center>
<center>
<ul style="color:#939393;text-align: left;width: 70%;font-size: 15px;">
</ul>
</center>
</div>
<div class="carry" style="background: url(images/XINF.png) no-repeat;background-size: 100%;width: 100%;height: 25rem;position: fixed;top: 15%;display: none;">
<center> <button class="btn" onclick="exchagePrize()" style="width:135px;height:35px;margin-top: 85%;outline: none;border-radius: 5px;box-shadow:0px 0px 5px 5px #ddd; color:#E34043;background: #fff;">确认领奖</button></center>
</div>
<div style="display:''">
<input id="prizeRecordId" name="prizeRecordId" value="" hidden>
</div>
<div style="display:none">
<script type="text/javascript">
var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F6f798e51a1cd93937ee8293eece39b1a' type='text/javascript'%3E%3C/script%3E"));
$(".btn").click(function(){
//console.log(123);
$(this).html("已领奖")
})
</script>
<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_5718743'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s9.cnzz.com/stat.php%3Fid%3D5718743%26show%3Dpic2' type='text/javascript'%3E%3C/script%3E"));</script>
</div>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化