javaScript实现抽奖大转盘(一)

今天试了试自己写个抽奖大转盘。
先是借了两张别人的图片:
指针
转盘
下面是布局部分:

   <div class="round">
       <div class="box">
           <img src="turntable.png" alt="">
       </div>
       <div class="btn">
           <img src="pointer.png" alt="">
       </div>
   </div>

css部分:

.round{
    position: relative;
    width: 450px;
    height: 450px;
}
.btn{
    position:absolute;
    top:50%;
    left: 50%;
    margin-top: -138px;
    margin-left: -94px;
}

接下来是JavaScript部分,并使用了css3:

 var round=document.getElementsByClassName("round")[0];
    var box=round.getElementsByClassName("box")[0].children[0];
    var btn=round.getElementsByClassName("btn")[0];
    btn.onclick=function(){
        var deg=Math.floor(Math.random()*360);
        var num=8;
        var rotateDeg=num*360+deg;
        box.style.transform="rotate("+rotateDeg+"deg)";
        box.style.transition="5s";
        setTimeout("res("+deg+")",5000)
    }
    function res(deg){
        if(deg>=0&&deg<=51){
            alert("免单4999");
        }else if(deg>51&&deg<=102){
            alert("免单50")
        }else if(deg>102&&deg<=153){
            alert("免单10")
        }else if(deg>153&&deg<=204){
            alert("免单5")
        }else if(deg>204&&deg<=255){
            alert("免分期")
        }else if(deg>255&&deg<=306){
            alert("提额度")
        }else{
            alert("未中奖")
        }
        box.dataset.rotate=deg;
        box.style.transform="rotate("+deg+"deg)";
        box.style.transition="";
    }
  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的JavaScript代码实现抽奖大转盘: ```html <!DOCTYPE html> <html> <head> <title>抽奖大转盘</title> <style> #wheel { position: relative; width: 400px; height: 400px; margin: 50px auto; } #inner-wheel { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; height: 300px; background-color: #ffffff; border-radius: 50%; box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); display: flex; flex-wrap: wrap; } #spin-button { display: block; margin: 20px auto; padding: 10px 20px; background-color: #ff0000; color: #ffffff; border: none; border-radius: 5px; font-size: 18px; cursor: pointer; } .segment { position: relative; width: 50%; height: 50%; border: 2px solid #000000; box-sizing: border-box; display: flex; justify-content: center; align-items: center; font-size: 20px; font-weight: bold; text-transform: uppercase; } .segment:nth-child(1) { background-color: #ffad00; transform: skewY(-15deg); } .segment:nth-child(2) { background-color: #ff0000; transform: skewY(15deg); } .segment:nth-child(3) { background-color: #00ff00; transform: skewX(-15deg); } .segment:nth-child(4) { background-color: #0000ff; transform: skewX(15deg); } </style> </head> <body> <div id="wheel"> <div id="inner-wheel"> <div class="segment">Prize 1</div> <div class="segment">Prize 2</div> <div class="segment">Prize 3</div> <div class="segment">Prize 4</div> </div> </div> <button id="spin-button">Spin the wheel</button> <script> const wheel = document.getElementById('inner-wheel'); const spinButton = document.getElementById('spin-button'); const segments = document.querySelectorAll('.segment'); const segmentCount = segments.length; let currentSegment = 1; spinButton.addEventListener('click', () => { // Generate a random number between 1 and the number of segments const spinResult = Math.floor(Math.random() * segmentCount) + 1; // Calculate the rotation angle for the wheel based on the random number const rotationAngle = 360 / segmentCount * (spinResult - 1) + 360 * 10; // Animate the wheel rotation wheel.style.transition = 'transform 5s ease-in-out'; wheel.style.transform = `rotate(${rotationAngle}deg)`; // When the animation is finished, display the result setTimeout(() => { alert(`Congratulations! You won ${segments[spinResult - 1].

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值