抽奖大转盘 js

抽奖大转盘 js

/*
* _this 旋转对象
* t 转过每一格的时间
* n 转动的圈数
* prizeNum 抽中的奖品编号 由0开始
* wheelNum 转盘的格数
* dataExecution 执行完之后要执行的函数
* */
let isGo = true;
function turnTable(_this,t,n,prizeNum,wheelNum,dataExecution) {
    if(isGo) {
        isGo = false;
        let deg = _this.css('transform');
        deg = deg.replace('rotate(', '');
        deg = deg.replace('deg)', '');
        if (deg == 'none') {
            deg = 0;
        }
        //当前奖品编号
        let numbering = (deg - Math.floor(deg / 360) * 360) / (360/wheelNum);
        console.log(numbering);
        if (numbering > n) {
            n1 = prizeNum + wheelNum - numbering;
        } else {
            n1 = prizeNum - numbering;
        }
        deg = Number(deg) + 360 * n + Number(n1 * (360/wheelNum));
        let time = t * n * wheelNum + n1 * t;
        _this.css({
            'transition': 'all ' + time + 's ease',
            '-moz-transitionall': 'all ' + time + 's ease',
            '-webkit-transition': 'all ' + time + 's ease',
            '-o-transition': 'all ' + time + 's ease'
        });
        _this.css({
            'transform': 'rotate(' + deg + 'deg)',
            '-moz-transform': 'rotate(' + deg + 'deg)',
            '-webkit-transform': 'rotate(' + deg + 'deg)',
            '-o-transform': 'rotate(' + deg + 'deg)'
        });
        setTimeout(function () {
            isGo = true;
            dataExecution();
        },time * 1000)
    }
}

引用

turnTable(_this,t,n,prizeNum,wheelNum,function(){
    //成功之后的执行函数
})

如有问题,请留言,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值