html canvas抽奖,HTML5 Canvas圆盘抽奖应用(适用于Vue项目)
}.xttblog_box{width:300px;height:300px;margin:100px auto;position:relative;
}.xttblog_box canvas{position:absolute;
}#xttblog{background-color:white;border-radius:100%;
}#xttblog01,
#xttblog03{left:50px;top:50px;z-index:30;
}#xttblog02{left:75px;top:75px;z-index:20;
}#xttblog{-o-transform:transform 6s;-ms-transform:transform 6s;-moz-transform:transform 6s;-webkit-transform:transform 6s;transition:transform 6s;-o-transform-origin:50% 50%;-ms-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;
}.taoge_btn{width:60px;height:60px;left:120px;top:120px;border-radius:100%;position:absolute;cursor:pointer;border:none;background:transparent;outline:none;z-index:40;
}
varangles;//旋转次数
varrotNum= 0;//中奖公告
varnotice= null;//转盘初始化各样式颜色
varcolor=["#ffefbf","#ffbb04","#e72c2c","#DCC722","#f4a005","#cb1418"];//后台获取奖品替换数据
varinfo=["1","2","3","4","5","6"];
canvasRun();
$('#tupBtn').bind('click',function() {//转盘旋转
runCup();//转盘旋转过程“开始抽奖”按钮无法点击
$('#tupBtn').attr("disabled",true);//“开始抽奖”按钮无法点击恢复点击
setTimeout(function() {
alert('中奖拉')
$('#tupBtn').removeAttr("disabled",true);
},6000);
});//转盘旋转
functionrunCup() {varnum= null
//获取随机数0-5 取回获奖数据下标代替 此处获取获奖数据使用异步方法
varnum=parseInt(Math.random()*(5 - 0 + 0)+ 0);//记录旋转的次数,依次叠加旋转度数,防止往回倒转 transform属性的值必须依次增加,否则会发生倒转
rotNum=rotNum+ 1
if(num!== null) {//旋转角度 = 旋转6圈(2160度)* 已经旋转的次数 + 最少旋转的圈数(5圈)+ 每个奖品下标对应的角度
angles= 2160 *rotNum+ 1800 + 360 /info.length*(info.length-num);
}else{
angles= 2160 *rotNum+ 1800}vardegValue= 'rotate(' +angles+ 'deg' + ')';
$('#xttblog').css('transform', degValue);//如果没有获取到获奖数据继续转动
if(num=== null) {
runCup();
}
}//绘制转盘
functioncanvasRun() {varcanvas=document.getElementById('xttblog');varcanvas01=document.getElementById('xttblog01');varcanvas03=document.getElementById('xttblog03');varcanvas02=document.getElementById('xttblog02');varctx=canvas.getContext('2d');varctx1=canvas01.getContext('2d');varctx3=canvas03.getContext('2d');varctx2=canvas02.getContext('2d');
createCircle();
createCirText();//绘制文字
initPoint();//绘制指针
//外圆
functioncreateCircle() {varstartAngle= 0;//扇形的开始弧度
varendAngle= 0;//扇形的终止弧度
//画一个等份扇形组成的圆形
for(vari= 0; i
startAngle=Math.PI*(i/(info.length/ 2)- 2 /info.length);
endAngle=startAngle+Math.PI*(1 /(info.length/ 2));
ctx.save();//保存备份
ctx.beginPath();//绘制两条线
ctx.arc(150,150,100, startAngle, endAngle,false);//绘制圆
ctx.lineWidth= 120;if(i% 2 == 0) {//绘制颜色
ctx.strokeStyle=color[1];
}else{
ctx.strokeStyle=color[0];
}
ctx.stroke();
ctx.restore();
}
}//各奖项
functioncreateCirText() {
ctx.textAlign= 'start';
ctx.textBaseline= 'middle';
ctx.fillStyle=color[3];varstep= 2 *Math.PI/info.length;for(vari= 0; i< 6; i++) {
ctx.save();
ctx.beginPath();
ctx.translate(150,150);
ctx.rotate(i*step);
ctx.font= "20px Microsoft YaHei";
ctx.fillStyle=color[3];
ctx.fillText(info[i],-30,-100,60);//书写转盘文字
ctx.font= "14px Microsoft YaHei";
ctx.closePath();
ctx.restore();
}
}//箭头指针
functioninitPoint() {//箭头指针
ctx1.beginPath();
ctx1.moveTo(100,24);
ctx1.lineTo(90,62);
ctx1.lineTo(110,62);
ctx1.lineTo(100,24);
ctx1.fillStyle=color[5];//指针颜色
ctx1.fill();
ctx1.closePath();//中间圆圈
ctx2.beginPath();
ctx2.arc(75,75,50,0, Math.PI* 2,false);//创建一个圆
ctx2.fillStyle=color[2];//颜色
ctx2.fill();
ctx2.closePath();//中间小圆
ctx3.beginPath();
ctx3.arc(100,100,40,0, Math.PI* 2,false);
ctx3.fillStyle=color[5];
ctx3.fill();
ctx3.closePath();//小圆文字
ctx3.font= "Bold 20px Microsoft YaHei";
ctx3.textAlign= 'start';
ctx3.textBaseline= 'middle';
ctx3.fillStyle=color[4];//抽奖文字颜色
ctx3.beginPath();
ctx3.fillText('开始',80,90,40);
ctx3.fillText('抽奖',80,110,40);
ctx3.fill();
ctx3.closePath();
}
}
});
抱歉!浏览器不支持。
抱歉!浏览器不支持。
抱歉!浏览器不支持。
抱歉!浏览器不支持。
html canvas抽奖,HTML5 Canvas圆盘抽奖应用(适用于Vue项目)相关推荐
- html 圆盘滚动抽奖,HTML5 Canvas圆盘抽奖应用DEMO
HTML5 Canvas圆盘抽奖应用DEMO html页面 HTML5 Canvas圆盘抽奖应用DEMO演示 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. w ...
- html css js实现抽奖,HTML5 Canvas圆盘抽奖应用DEMO
HTML5 Canvas圆盘抽奖应用DEMO html页面 HTML5 Canvas圆盘抽奖应用DEMO演示 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. w ...
- html5 canvas签字,HTML5 canvas实现电子签名
1.为什么要用到BASE64编码的图片信息Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一.Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些 ...
- html5 canvas消除锯齿,HTML5 Canvas 如何取消反锯齿绘图
一.问题的提出 我们都知道反锯齿(anti-aliasing)绘图给我们带来更好的视觉体验,有了这个技术,绘制的图形的边缘再不是以前毛毛躁躁的样子了.这就是采用反锯齿算法的功劳.其实质就是把要绘制的颜 ...
- html5 canvas消除锯齿,HTML5 Canvas 如何取消反锯齿绘图
原文出自:http://blog.csdn.net/cheungmine/article/details/7053455 一.问题的提出 我们都知道反锯齿(anti-aliasing)绘图给我们带来更 ...
- html5 canvas爆炸,html5 canvas彩色爆炸的小球动画特效
特效描述:html5 canvas 彩色爆炸 小球动画特效.html5 canvas特效,有中心向四周爆炸的彩色小球,有开始和暂停按钮 代码结构 1. HTML代码 开始运动 停止运动 var can ...
- html canvas php,HTML5 canvas实现画图程序(附代码)
这篇文章给大家介绍的内容是关于HTML5 canvas实现画图程序(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 项目简介 整个项目分为两大部分场景 场景负责canvas控 ...
- html5 canvas 烟花,html5 canvas酷炫的烟花爆炸动画特效
特效描述:html5canvas 酷炫的 烟花爆炸动画特效.html5点击页面烟花爆炸动画,3D烟花动画,酷炫的烟花特效. 代码结构 1. 引入JS 2. HTML代码 点击页面 (function( ...
- html5 canvas 画阿迪达斯logo,HTML5 Canvas笔记——HTML5 Canvas绘图绘制太极图
HTML5 Canvas绘图绘制太极图 太极图 * { padding: 0; margin: 0; } body { } #myCanvas { background-color: #eee; } ...
最新文章
- 中国电子学会青少年编程能力等级测试图形化四级编程题:打篮球
- BERT拿下最佳长论文奖!NAACL 2019最佳论文奖公布
- where oracle用法,Oracle查询语句 select * from where 用法
- leetcode算法题--对链表进行插入排序
- adt+选择android+sdk,eclipse+adt+android SDK 开发搭建环境中遇到的问题
- 服务端断开_Java多线程技术:实现多用户服务端Socket通信
- (12)ISE14.7仿真流程(FPGA不积跬步101)
- Unity+KBEngine实战系列1——棋牌(含完整教程与源码)
- ADODB.Connection 错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。解决方法!...
- 9模块化学习 java_Java 9模块
- JS-商品图片点击轮换
- HelloWorld
- Maxon伺服驱动EPOS2 24/5 配置
- Building your Deep Neural Network - Step by Step v5 作业 - Neural Networks and Deep Learning
- 游戏测试好还是软件测试好,浅学软件测试 软件测试和游戏测试哪个有前途?...
- 如何给拍好的短视频配音?最简单的方法推荐!
- r语言中which的使用_大数据分析R语言RStudio使用教程
- mac 不显示 外接屏幕_mac连接投影仪不显示怎么办-mac外接显示器设置教程 - 河东软件园...
- 【编程题】【Scratch二级】2019.09 制作蝙蝠冲关游戏
- 路由器固件编译及个性化
热门文章
- Ubuntu 14.04 上使用 Nginx 部署 Laravel 4.2
- 县分计算机维修报废流程图,实验9 氨基甲酸铵分解反应标准平衡常数的测定.doc...
- 语言 物品竞拍系统_【优加答疑】没有语言的孩子,该如何沟通?
- php yaml扩展,php的扩展 - yaml
- java登录注册原理_案例:登录注册实现
- 超级计算机排名表格,全球超级计算机500强_科技时代首页_新浪网
- php 返回数组 键名,php array_keys 返回数组的键名
- linux怎么安装java环境变量_linux怎么配置java环境变量
- Jmeter之控制线程执行到某个结果时退出执行(第二种解决方案)
- 彻底理解Spring IOC和DI