LuckDraw
滚动抽奖
用原生js实现的一个滚动抽奖的插件
实际效果见 demo
使用方式:
let container = document.getElementById('rolls');
let data = [1,2,3,4,5,6];
var lucky = new Lucky(container,data,{
childHeight: 100,
end: function (item) {
alert('恭喜'+item+'号同学中奖');
}
});
document.getElementById('start').addEventListener('click',function () {
lucky.start();
});
document.getElementById('stop').addEventListener('click',function () {
lucky.stop();
});
参数说明
new Lucky(container, data, options)
type | 说明 | |
---|---|---|
container | js-dom | 容器节点 |
data | Array | 抽奖池数据 |
options | Object | 参数 |
options 说明
type | 默认值 | 说明 | |
---|---|---|---|
childHeight | Number | 200 | 子节点的高度(必须配置) |
childRender | Function | funtion(item){return '<li>{{item}}</li>'} |
渲染子节点的自定义函数 |
speed | Number | 16 | 运动的速度,帧与帧的间隔 |
noCss3 | Boolean | false | 不使用css3进行变换 |
startIndex | Number | Math.floor(data.length / 2) |
初始位置 |
end | Function | null | 抽奖结束后的回调函数 |
参考样式
.luckyBox{
width: 200px;
height: 100px;
position: relative;
margin-top:100px;
}
.rolls{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.rolls li{
width: 100%;
height: 100%;
line-height: 100px;
list-style: none;
font-size: 50px;
font-weight: bold;
text-align: center;
}