js实现转盘抽奖

一、效果图

在这里插入图片描述

二、设计思路

  • 第一步:先建立所有奖品的集合,设置默认转的圈数
  • 第二步:设置转动的随机角度
  • 第三步:转动到哪里就是最后的奖品,使用浏览器弹框弹出
  • 第四步:设置每一个奖品转到的概率

三、核心代码

    //先建立所有奖品的集合
    var list=['免单4999元', '免单50元', '免单10元', '免单5元', '免分期服务费', '提高白条额度', '未中奖'];
    //抽奖的状态
    var isStart=true;
    //获得奖品的索引
    var index=null;
    //当前的奖品
    var nowTxt=null;
    //点击抽奖
    var pointer=document.querySelector(".pointer");
    //获取rotate
    var rotate=document.querySelector(".rotate");
    //默认转的度数
    var defaultAngle=1800;//默认转五圈
    var angle=360/list.length;
    pointer.onclick=function(){
        if(isStart){
            //开始抽奖
            isStart=false;
            index=getinfo();
            nowTxt=list[index];
            var agl=index*angle+defaultAngle+Math.random()*angle;
            rotate.style.transform="rotatez("+agl+"deg)";
            setTimeout(function(){
                alert("奖品:"+nowTxt);
                isStart=true;
            },3000)
        }
    }
    function getinfo(){
        var num=Math.random();
        var i=null;
        if(num<0.03){
            i=0;
        }
        else if(num<0.1){
            i=1;
        }
        else if(num<0.2)
        {
            i=2;//10%
        }
        else if(num<0.35)
        {
            i=3;//15%
        }
        else if(num<0.55)
        {
            i=4;//20%
        }
        else if(num<0.85)
        {
            i=5;//30%
        }
        else{
            i=6;
        }
        return i;
    } 
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
关于html实现转盘抽奖,以下是一些参考思路和代码: 1. 首先,我们需要构建一个转盘的布局。这可以通过一张圆形的图片来实现,或者用CSS绘制一个圆形实现。同时,在转盘中添加各个奖项所在的区域,可以考虑用div或img标签等。 2. 接下来,我们需要实现转盘的旋转动画。这可以使用CSS3的旋转动画实现。在CSS3中,transform属性可以用来控制元素的旋转、平移、缩放等变换效果。代码示例: .rotate { -webkit-animation: rotate 3s linear infinite; animation: rotate 3s linear infinite; } @-webkit-keyframes rotate { from { -webkit-transform: rotate(0deg); } to { -webkit-transform: rotate(360deg); } } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } 3. 完成了转盘的旋转动画后,我们需要实现抽奖的逻辑。这可以通过JavaScript实现。例如,在点击“抽奖”按钮时,通过生成随机数来确定哪个奖项被抽中。代码示例: function rotate() { var num = Math.floor(Math.random() * 8); //生成0-7的随机数 var deg = num * 45 + 1800; //根据奖项编号计算旋转角度 var obj = document.getElementById('rotate'); obj.style.transform = 'rotate(' + deg + 'deg)'; } 4. 最后,我们需要将抽中的奖项显示出来。可以在旋转动画完成后,通过JavaScript修改页面内容来实现。代码示例: obj.addEventListener('webkitAnimationEnd', function(){ //旋转动画结束后显示抽中的奖项 alert('恭喜您抽中了xxx'); }, false); 希望以上内容可以帮助您实现html转盘抽奖

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南初️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值