HTML5 简单的转盘抽奖js特效代码

下载地址

var info=["一等奖","二等奖","三等奖","四等奖","五等奖","六等奖","七等奖","八等奖","九等奖","十等奖"];var color=[];var step = 2*Math.PI/10;var outerR = 150; //轮盘的大小var interR = 50;//内存空白圆的大小var beginAngle=50;//旋转起来时默认开始旋转的度数,度数愈大旋转的初始速度愈大var radio = 0.95;//旋转速度衰减系数,影响旋转时间var t = null;window.οnlοad=function() { for ( var i = 0; i < 10; i++) { color.push(getColor()); } var canvas = document.getElementById("canvas"); var context = canvas.getContext("2d"); context.translate(250,250); Arrow(context); init(context); document.getElementById("btn").οnclick=function(){ if(t){ return false; } var step = beginAngle +Math.random()*10; var angle = 0; t = setInterval(function(){ step *=radio; if(step <= 0.1){ clearInterval(t); t =null; var pos = Math.ceil(angle / 36); var res = info[10-pos]; context.save(); context.beginPath(); context.font="23px 微软雅黑"; context.fillStyle="#f00"; context.textAlign="center"; context.textBaseline="middle"; context.fillText(res,0,0); context.restore(); }else{ context.clearRect(-250,-250,500,500); angle+=step; if(angle > 360){ angle -=360; } context.save(); context.beginPath(); context.rotate(angle * Math.PI/180); init(context); context.restore(); Arrow(context); } },60); };};function Arrow(context){ context.save(); context.beginPath(); context.lineWidth = 5; context.moveTo(170,0); context.lineTo(180,15); context.lineTo(180,5); context.lineTo(250,5); context.lineTo(250,-5); context.lineTo(180,-5); context.lineTo(180,-15); context.closePath(); context.fill(); context.restore();}function init(context){ for ( var i = 0; i < 10; i++) { context.save(); context.beginPath(); context.moveTo(0,0); context.fillStyle=color[i]; context.arc(0,0,outerR,i*step,(i+1)*step); context.fill(); context.restore(); } context.save(); context.beginPath(); context.fillStyle="#fff"; context.arc(0,0,interR,0,2*Math.PI); context.fill(); context.restore(); for ( var i = 0; i < 10; i++) { context.save(); context.beginPath(); context.fillStyle="#000"; context.font="15px 微软雅黑"; context.textAlign="center"; context.textBaseline="middle"; context.rotate(i*step+step/2); context.fillText(info[i],(outerR + interR)/2,0); context.restore(); }}function getColor(){ var random = function(){ return Math.floor(Math.random()*255); } return "rgb("+random()+","+random()+","+random()+")";}

2038_1778f01a1c3a9ca1bcd36e2533af409a.jpg

dd:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML5转盘抽奖特效可以通过HTML、CSS和JavaScript来实现。以下是一个简单的示例代码HTML部分: ```html <div class="container"> <div class="wheel"> <div class="slice" style="background-color: #ff4f4f;">奖品1</div> <div class="slice" style="background-color: #ffaf4f;">奖品2</div> <div class="slice" style="background-color: #ffff4f;">奖品3</div> <div class="slice" style="background-color: #4fff4f;">奖品4</div> <div class="slice" style="background-color: #4fffd4;">奖品5</div> <div class="slice" style="background-color: #4f8fff;">奖品6</div> </div> <button class="spin">开始抽奖</button> </div> ``` CSS部分: ```css .container { position: relative; width: 500px; height: 500px; } .wheel { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transform: rotate(0deg); transform-origin: center center; transition: transform 3s ease-out; } .slice { position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-align: center; line-height: 500px; font-size: 24px; font-weight: bold; color: white; } .spin { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); padding: 10px 20px; font-size: 20px; } ``` JavaScript部分: ```javascript document.querySelector(".spin").addEventListener("click", function() { var wheel = document.querySelector(".wheel"); var randomDeg = Math.floor(Math.random() * 360 + 720); wheel.style.transform = "rotate(" + randomDeg + "deg)"; setTimeout(function() { var slices = document.querySelectorAll(".slice"); var result = slices[parseInt((randomDeg % 360) / (360 / slices.length))]; alert("恭喜您,中奖了!奖品是:" + result.innerText); }, 3000); }); ``` 这段代码中,我们首先定义了一个包含了大转盘和一个开始抽奖按钮的容器。大转盘由若干个奖品块(slice)组成,每个奖品块的背景颜色不同。然后,我们使用CSS实现了大转盘自动旋转的效果。在JavaScript部分,我们通过监听开始抽奖按钮的点击事件,随机生成一个旋转角度,然后使用CSS的`transform`属性实现大转盘的旋转,并将结果保存在变量result中。最后,我们通过`setTimeout`函数实现3秒延迟后弹出中奖提示,并将中奖奖品显示出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值