圆盘抽奖
这个组件初始状态不指向奖品,而是指向缝隙
Api
参数:
| 名称 | 描述 | 
|---|---|
| length | 奖品数量 | 
| el | 容器ID | 
属性:
playing 是否正在动画中
方法:
playto(n,callback) 旋转到第n个奖品,旋转结束运行callback回调
代码示例
<div id="ltpanel" class="panel"></div>
<script src="/js/zepto/zepto.min.js"></script>
<script src="/loteryround.min.js"></script>
<script>
    // 转盘初始化
    // 第一个参数是奖品的个数
    // 第二个是用来旋转的圆盘(指针不动)
    var panel=new PanelLotery({
        length:8, //奖项数量   
        //duration:5000, //动画的时间,默认5秒,可不填
        el:'#ltpanel'
    });
    $('.panel-btn').on('click', function(event) {
        event.preventDefault();        
      if(panel.playing) return;        
      // 这里是演示随机转到奖品n
      // 初始的指针右侧开始
      // 顺时针方向开始算
      // 第一个奖品是n=0
      var n=Math.floor(Math.random()*8);        
      console.log(n);
      panel.playto(n,function(){
        alert(n);
      });
    });
</script>
方形抽奖(同时支持圆形)
原生 JavaScript 抽奖组件,支持rem移动端适配,无框架依赖。
Api
参数:
| 名称 | 类型 | 默认值 | 描述 | 
|---|---|---|---|
| lighturl | string | '' | 外部光圈图片 | 
| starturl | string | '' | 外部按钮图片 | 
| width | number | 800 | 宽度 | 
| height | number | 660 | 高度 | 
| total | number | 18 | 抽奖产品的总数 | 
| sbtnx | number | 239 | 开始抽奖按钮的位置x坐标 | 
| sbtny | number | 130 | 开始抽奖按钮的位置y坐标 | 
| sbtnw | number | 320 | 开始抽奖按钮的宽度 | 
| sbtnh | number | 100 | 开始抽奖按钮的高度 | 
| boxw | number | 100 | 奖品光效的宽度 | 
| boxh | number | 100 | 奖品光效的高度 | 
| position | string | "19_20, 128_20, 348_19, 569_239, 679_239" | 奖品光效的位置,对应奖品图片的布局,填入每个奖品的位置以及角度用逗号分割x_y_rotation(角度为0的可以不填写)例如19_20或者19_20_0表示第一个奖品的位置x坐标为19px y坐标为20px角度为0。) | 
| contentId | string | 容器 | 嵌入抽奖模块的div层的id | 
| onClickRollEvent | function | 点击开始的回调事件 | |
| onCompleteRollEvent | function | 完成的回调事件 | |
| b | string | null | 圆盘的图片,不填时 自动载入容器“contentId”下第一张图片 | 
| s | string | null | 开始抽奖按钮图片 | 
| bx | number | null | 圆盘的图片位置x坐标(转盘的中心点坐标为(0,0)) | 
| by | number | null | 圆盘的图片位置y坐标 | 
| sx | number | null | 开始抽奖按钮x坐标 | 
| sy | number | null | 开始抽奖按钮y坐标 | 
| sw | number | 100 | 开始抽奖按钮宽度 | 
| sh | number | 100 | 开始抽奖按钮高度 | 
| unit | string | px | 尺寸单位 | 
方法:
enable() 禁用
disable() 启用
stopRoll(index) 停止到所在的位置,在onClickRollEvent事件中调用。
reset() 重置
代码示例
方形示例
<div id="lotterycontent">
    <img src="bg.png" style="">
</div>
<script src="/js/delottery/lottery.js"></script>
<script>
    //开始抽奖
    function callJsToStart(lotteryObj){
        // 这里是演示随机转到奖品0~9的一个数字
        // 初始的指针右侧开始
        // 顺时针方向开始算
        // 第一个奖品是0
        var prize = Math.floor(Math.random() * 10);
        
        lotteryObj.stopRoll(prize)
    }
    
    //动画完成
    function callJsToComplete(prize){
        alert("你的奖品是:"+prize);
    }
     
    new Lottery({
        'lighturl':'/images/p3_lottery_cur.png',
        'total':10,
        'width':6.8,
        'height':4.99,
        'sbtnx':1.85,
        'sbtny':1.79,
        'sbtnw':3.09,
        'sbtnh':1.04,
        'boxw':1.51,
        'boxh':1.4,
        'position':"0.2_0.22,1.81_0.22,3.45_0.22,5.08_0.22,0.2_1.76,5.08_1.76,0.2_3.33,1.81_3.33,3.45_3.33,5.08_3.33",
        'contentId' : 'lotterycontent',
        'onClickRollEvent' : callJsToStart,
        'onCompleteRollEvent':callJsToComplete ,
        'unit':"rem",
        'isResponsive':0
    });
</script>
圆盘示例
这个组件初始化指向一个奖品
<div id="lotterycontent">
    <img src="bg.png" style="">
</div>
<script>
    new Lottery({
        'r':8,//奖品总数
        'width':488,//宽度
        'height':488,//高度
        's':'/images/lottery/circle/z.png',//开始抽奖按钮图片
        'bx':0,//圆盘的图片位置x坐标 (转盘的中心点坐标为(0,0))
        'by':0,//圆盘的图片位置y坐标
        'sx':0,//开始抽奖按钮x坐标
        'sy':0,//开始抽奖按钮y坐标
        'contentId' : 'lotterycontent',//容器层的 id 
        'onClickRollEvent' : callJsToStarto,//对应上面接口
        'onCompleteRollEvent':callJsToCompleteo //对应上面接口
    });
</script>
