HTML5 Canvas圆盘抽奖应用DEMO演示

}.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项目)相关推荐

  1. html 圆盘滚动抽奖,HTML5 Canvas圆盘抽奖应用DEMO

    HTML5 Canvas圆盘抽奖应用DEMO html页面 HTML5 Canvas圆盘抽奖应用DEMO演示 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. w ...

  2. html css js实现抽奖,HTML5 Canvas圆盘抽奖应用DEMO

    HTML5 Canvas圆盘抽奖应用DEMO html页面 HTML5 Canvas圆盘抽奖应用DEMO演示 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. w ...

  3. html5 canvas签字,HTML5 canvas实现电子签名

    1.为什么要用到BASE64编码的图片信息Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一.Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些 ...

  4. html5 canvas消除锯齿,HTML5 Canvas 如何取消反锯齿绘图

    一.问题的提出 我们都知道反锯齿(anti-aliasing)绘图给我们带来更好的视觉体验,有了这个技术,绘制的图形的边缘再不是以前毛毛躁躁的样子了.这就是采用反锯齿算法的功劳.其实质就是把要绘制的颜 ...

  5. html5 canvas消除锯齿,HTML5 Canvas 如何取消反锯齿绘图

    原文出自:http://blog.csdn.net/cheungmine/article/details/7053455 一.问题的提出 我们都知道反锯齿(anti-aliasing)绘图给我们带来更 ...

  6. html5 canvas爆炸,html5 canvas彩色爆炸的小球动画特效

    特效描述:html5 canvas 彩色爆炸 小球动画特效.html5 canvas特效,有中心向四周爆炸的彩色小球,有开始和暂停按钮 代码结构 1. HTML代码 开始运动 停止运动 var can ...

  7. html canvas php,HTML5 canvas实现画图程序(附代码)

    这篇文章给大家介绍的内容是关于HTML5 canvas实现画图程序(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 项目简介 整个项目分为两大部分场景 场景负责canvas控 ...

  8. html5 canvas 烟花,html5 canvas酷炫的烟花爆炸动画特效

    特效描述:html5canvas 酷炫的 烟花爆炸动画特效.html5点击页面烟花爆炸动画,3D烟花动画,酷炫的烟花特效. 代码结构 1. 引入JS 2. HTML代码 点击页面 (function( ...

  9. html5 canvas 画阿迪达斯logo,HTML5 Canvas笔记——HTML5 Canvas绘图绘制太极图

    HTML5 Canvas绘图绘制太极图 太极图 * { padding: 0; margin: 0; } body { } #myCanvas { background-color: #eee; } ...

最新文章

  1. 中国电子学会青少年编程能力等级测试图形化四级编程题:打篮球
  2. BERT拿下最佳长论文奖!NAACL 2019最佳论文奖公布
  3. where oracle用法,Oracle查询语句 select * from where 用法
  4. leetcode算法题--对链表进行插入排序
  5. adt+选择android+sdk,eclipse+adt+android SDK 开发搭建环境中遇到的问题
  6. 服务端断开_Java多线程技术:实现多用户服务端Socket通信
  7. (12)ISE14.7仿真流程(FPGA不积跬步101)
  8. Unity+KBEngine实战系列1——棋牌(含完整教程与源码)
  9. ADODB.Connection 错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。解决方法!...
  10. 9模块化学习 java_Java 9模块
  11. JS-商品图片点击轮换
  12. HelloWorld
  13. Maxon伺服驱动EPOS2 24/5 配置
  14. Building your Deep Neural Network - Step by Step v5 作业 - Neural Networks and Deep Learning
  15. 游戏测试好还是软件测试好,浅学软件测试 软件测试和游戏测试哪个有前途?...
  16. 如何给拍好的短视频配音?最简单的方法推荐!
  17. r语言中which的使用_大数据分析R语言RStudio使用教程
  18. mac 不显示 外接屏幕_mac连接投影仪不显示怎么办-mac外接显示器设置教程 - 河东软件园...
  19. 【编程题】【Scratch二级】2019.09 制作蝙蝠冲关游戏
  20. 路由器固件编译及个性化

热门文章

  1. Ubuntu 14.04 上使用 Nginx 部署 Laravel 4.2
  2. 县分计算机维修报废流程图,实验9 氨基甲酸铵分解反应标准平衡常数的测定.doc...
  3. 语言 物品竞拍系统_【优加答疑】没有语言的孩子,该如何沟通?
  4. php yaml扩展,php的扩展 - yaml
  5. java登录注册原理_案例:登录注册实现
  6. 超级计算机排名表格,全球超级计算机500强_科技时代首页_新浪网
  7. php 返回数组 键名,php array_keys 返回数组的键名
  8. linux怎么安装java环境变量_linux怎么配置java环境变量
  9. Jmeter之控制线程执行到某个结果时退出执行(第二种解决方案)
  10. 彻底理解Spring IOC和DI