js转盘抽奖部分代码原理

var iNum,data;
var el = document.getElementById("aDiv");
var angle=0,angles=0;
var pi = Math.PI;

function degToRad(x){return( x/(360/(2*pi)));}
function radToDeg(x){return( x*(360/(2*pi)));}

function rotate(){
        var rad = degToRad(angle);
        costheta = Math.cos(rad);
        sintheta = Math.sin(rad);
        //var el = document.getElementById(name);
        if(el.filters)
        {
         el.style.filter = "progid:DXImageTransform.Microsoft.Matrix()";
         el.filters.item("DXImageTransform.Microsoft.Matrix").SizingMethod = "auto expand";
         el.filters.item("DXImageTransform.Microsoft.Matrix").FilterType = "bilinear";
         el.filters.item("DXImageTransform.Microsoft.Matrix").M11 = costheta;
         el.filters.item("DXImageTransform.Microsoft.Matrix").M12 = -sintheta;
         el.filters.item("DXImageTransform.Microsoft.Matrix").M21 = sintheta;
         el.filters.item("DXImageTransform.Microsoft.Matrix").M22 = costheta;
        }
        else if(window.navigator.userAgent.indexOf("Firefox")>=1)
        {
                el.style.MozTransform = "rotate("+angle+"deg)";
        }
        else if(window.navigator.userAgent.indexOf("Chrome")>=1)
        {
                el.style.WebkitTransform = "rotate("+angle+"deg)";
        }
        else if(window.navigator.userAgent.indexOf("Safari")>=1){
                el.style.WebkitTransform = "rotate("+angle+"deg)";
        }
        else if(window.navigator.appName=="Opera"){
                el.style.OTransform = "rotate("+angle+"deg)";
        }

}

来源:深圳网站建设公司(www.jihai.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值