Compare commits
No commits in common. '034051470319c4dc41b582e128fc0a1482ebf8a1' and 'b10ee4f49eeac4608f1c321c6f6be94d3d9785e1' have entirely different histories.
0340514703
...
b10ee4f49e
18 changed files with 13 additions and 1614 deletions
@ -1,73 +0,0 @@ |
|||||||
<!-- |
|
||||||
* @Descripttion: |
|
||||||
* @version: |
|
||||||
* @Author: sueRimn |
|
||||||
* @Date: 2020-09-25 08:48:50 |
|
||||||
* @LastEditors: sueRimn |
|
||||||
* @LastEditTime: 2020-10-14 09:08:17 |
|
||||||
--> |
|
||||||
<div class="box"> |
|
||||||
<div class="head"> |
|
||||||
<img src="../../../assets/images/head.png"> |
|
||||||
<!-- <span>指挥员能力考评抽签</span> --> |
|
||||||
<img class="ziti" src="../../../assets/images/tophead.png"> |
|
||||||
</div> |
|
||||||
<div class="mainbox"> |
|
||||||
<!-- <div class="colum" style="margin-left: 13%;width: 100px;"> |
|
||||||
<div class="centerLefta" > |
|
||||||
<div class="tanCenterbtna" id="chooseZhi"> |
|
||||||
<span style="background-color: #ff4d29;color:#FFF;" >序号</span> |
|
||||||
<span *ngFor="let item of choujiang; let key=index" [ngClass]="{'beijicolor': chooseid ==key}" >{{item.idnum}}</span> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> --> |
|
||||||
<div class="colum" style="margin-left: 150px;"> |
|
||||||
<div class="centerLeft" > |
|
||||||
<div class="tanCenterbtn" id="chooseZhi"> |
|
||||||
<span style="background-color: #ff4d29;color:#FFF;" name="zhidui" data-id=`{{chooseid}}`>请选择支队</span> |
|
||||||
<span [attr.key]="item.id" name="aaa" *ngFor="let item of choujiang; let key=index" [ngClass]="{'beijicolor': chooseid ==key}" (click)="clickName(item)">{{item.name}} |
|
||||||
<img class="img" [ngClass]="{'block': item.result == '' ? false : true}" style="margin-left: 8px;" src="../../../assets/images/dui.png"> |
|
||||||
</span> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
<div class="colum"> |
|
||||||
<div class="centerLeft"> |
|
||||||
<div class="tanCenterbtn" id="endjieguo"> |
|
||||||
<span style="text-align: center;background-color: #ff4d29;color:#FFF;">抽签结果:</span> |
|
||||||
<span *ngFor="let item of choujiang; let key=index" >{{item.result}}</span> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="line" style="padding-top:50px;"> |
|
||||||
|
|
||||||
<div class="content"> |
|
||||||
|
|
||||||
<div style="clear:both; padding-top: 277px;width: 335px;margin: 0 auto;"> |
|
||||||
<div id="machine4" class="slotMachine" style="margin-left: -65px;"> |
|
||||||
<div class="slot" > |
|
||||||
{{isDraw ? '已抽签' : '开始抽签'}} |
|
||||||
</div> |
|
||||||
<div class="slot" *ngFor="let item of numList; let key=index">{{item.name}}</div> |
|
||||||
</div> |
|
||||||
<div id="yichou" style="display: none;"> |
|
||||||
<span>以抽签</span> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
</div> |
|
||||||
|
|
||||||
<div style="text-align: center;"> |
|
||||||
<div id="slotMachineButtonShuffle" class="slotMachineButton" style="font-size: 25px">开始抽签</div> |
|
||||||
|
|
||||||
</div> |
|
||||||
|
|
||||||
</div> |
|
||||||
|
|
||||||
|
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,182 +0,0 @@ |
|||||||
|
|
||||||
|
|
||||||
@import "../../../assets/css/laohujistyle.css"; |
|
||||||
.box{ |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
overflow: hidden; |
|
||||||
background-image: url("../../../assets/images/backgroud.png"); |
|
||||||
background-size: 100%; |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
.head{ |
|
||||||
width: 100%; |
|
||||||
height: 50px; |
|
||||||
img{ |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
} |
|
||||||
.ziti{ |
|
||||||
position: relative; |
|
||||||
bottom: 70%; |
|
||||||
left: 40%; |
|
||||||
width: 20%; |
|
||||||
height: 53%; |
|
||||||
} |
|
||||||
span{ |
|
||||||
position: relative; |
|
||||||
bottom: 70%; |
|
||||||
left: 45%; |
|
||||||
font-size: 28px; |
|
||||||
background:linear-gradient(#ff4b27, #ff6e41); |
|
||||||
-webkit-background-clip: text; |
|
||||||
color: transparent; |
|
||||||
-webkit-text-fill-color: transparent; |
|
||||||
text-fill-color: transparent; |
|
||||||
} |
|
||||||
} |
|
||||||
.mainbox { |
|
||||||
width: 99%; |
|
||||||
height: 90%; |
|
||||||
padding: 0.125rem 0.125rem 0; |
|
||||||
display: flex; |
|
||||||
} |
|
||||||
|
|
||||||
.centerLeft{ |
|
||||||
background-color: #FFF; |
|
||||||
float: left; |
|
||||||
height: 98%; |
|
||||||
width: 100%; |
|
||||||
position: relative; |
|
||||||
flex-direction: column; |
|
||||||
flex: 2%; |
|
||||||
display: flex; |
|
||||||
align-items:center; |
|
||||||
box-sizing: border-box; |
|
||||||
margin: 0 0; |
|
||||||
.tanCenterbtn{ |
|
||||||
width: 350px; |
|
||||||
height: 100%; |
|
||||||
border: 1px solid #ECEDEE; |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
user-select: none; |
|
||||||
background-size:100% 100%; |
|
||||||
span{ |
|
||||||
white-space: nowrap; |
|
||||||
font-family: Arial; |
|
||||||
color: #000; |
|
||||||
z-index:99; |
|
||||||
width: 300px; |
|
||||||
height: 40px; |
|
||||||
cursor:pointer; |
|
||||||
border-bottom:1px solid #ECEDEE; |
|
||||||
padding:8px 24px ; |
|
||||||
text-align: center; |
|
||||||
font-size: 24px; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
.centerLefta{ |
|
||||||
background-color: #FFF; |
|
||||||
float: left; |
|
||||||
height: 98%; |
|
||||||
width: 100%; |
|
||||||
position: relative; |
|
||||||
flex-direction: column; |
|
||||||
flex: 2%; |
|
||||||
display: flex; |
|
||||||
align-items:center; |
|
||||||
box-sizing: border-box; |
|
||||||
margin: 0 0; |
|
||||||
.tanCenterbtna{ |
|
||||||
width: 100px; |
|
||||||
height: 100%; |
|
||||||
border: 1px solid #ECEDEE; |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
user-select: none; |
|
||||||
background-size:100% 100%; |
|
||||||
span{ |
|
||||||
white-space: nowrap; |
|
||||||
font-family: Arial; |
|
||||||
color: #000; |
|
||||||
z-index:99; |
|
||||||
width: 50px; |
|
||||||
height: 40px; |
|
||||||
cursor:pointer; |
|
||||||
border-bottom:1px solid #ECEDEE; |
|
||||||
padding:8px 24px ; |
|
||||||
text-align: center; |
|
||||||
font-size: 24px; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
.colum{ |
|
||||||
height: 90%; |
|
||||||
width: 350px; |
|
||||||
margin-top: 72px; |
|
||||||
display:table-cell; |
|
||||||
vertical-align:middle; |
|
||||||
text-align: center; |
|
||||||
span{ |
|
||||||
font-size: 24px; |
|
||||||
|
|
||||||
//padding-top: 50%; |
|
||||||
} |
|
||||||
} |
|
||||||
.zhuan{ |
|
||||||
width: 500px; |
|
||||||
margin-left: 160px; |
|
||||||
margin-top: 10%; |
|
||||||
} |
|
||||||
.stop{ |
|
||||||
pointer-events: none; |
|
||||||
} |
|
||||||
.button { |
|
||||||
height: 48px; |
|
||||||
width: 130px; |
|
||||||
background-color:transparent; |
|
||||||
border-radius: 4px; |
|
||||||
border: 1px solid #ECEDEE; |
|
||||||
color: #FFF; |
|
||||||
padding: 12px 32px; |
|
||||||
text-align: center; |
|
||||||
text-decoration: none; |
|
||||||
display: inline-block; |
|
||||||
font-size: 16px; |
|
||||||
margin: 4px 2px; |
|
||||||
cursor: pointer; |
|
||||||
} |
|
||||||
.chongzhi{ |
|
||||||
position: relative; |
|
||||||
top: 85%; |
|
||||||
right: 17%; |
|
||||||
} |
|
||||||
|
|
||||||
//选择后加背景色 |
|
||||||
.beijicolor{ |
|
||||||
background-color:#FE693E ; |
|
||||||
} |
|
||||||
body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;} |
|
||||||
body{color:#333; font-size:12px;font-family:"Microsoft YaHei"} |
|
||||||
ul,ol{list-style-type:none;} |
|
||||||
select,input,img,select{vertical-align:middle;} |
|
||||||
input{ font-size:12px;} |
|
||||||
a{ text-decoration:none; color:#000;} |
|
||||||
a:hover{color:#c00; text-decoration:none;} |
|
||||||
.clear{clear:both;} |
|
||||||
|
|
||||||
/* 大转盘样式 */ |
|
||||||
.banner{//max-height: 650px; |
|
||||||
display: block; |
|
||||||
width: 95%; |
|
||||||
//max-width: 650px; |
|
||||||
margin-left: auto; |
|
||||||
margin-right: auto; |
|
||||||
margin-bottom: 20px; |
|
||||||
} |
|
||||||
.banner .turnplate{display:block;width:100%;position:relative;} |
|
||||||
.banner .turnplate canvas.item{width:100%;height: 100%;} |
|
||||||
.banner .turnplate img.pointer{position:absolute;width:30.5%;height:36.5%;left:34.6%;top:28.5%;} |
|
||||||
|
|
@ -1,25 +0,0 @@ |
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; |
|
||||||
|
|
||||||
import { FirstStepComponent } from './first-step.component'; |
|
||||||
|
|
||||||
describe('FirstStepComponent', () => { |
|
||||||
let component: FirstStepComponent; |
|
||||||
let fixture: ComponentFixture<FirstStepComponent>; |
|
||||||
|
|
||||||
beforeEach(async(() => { |
|
||||||
TestBed.configureTestingModule({ |
|
||||||
declarations: [ FirstStepComponent ] |
|
||||||
}) |
|
||||||
.compileComponents(); |
|
||||||
})); |
|
||||||
|
|
||||||
beforeEach(() => { |
|
||||||
fixture = TestBed.createComponent(FirstStepComponent); |
|
||||||
component = fixture.componentInstance; |
|
||||||
fixture.detectChanges(); |
|
||||||
}); |
|
||||||
|
|
||||||
it('should create', () => { |
|
||||||
expect(component).toBeTruthy(); |
|
||||||
}); |
|
||||||
}); |
|
@ -1,74 +0,0 @@ |
|||||||
import { Component, OnInit } from '@angular/core'; |
|
||||||
import '../../../assets/js/firststep' |
|
||||||
@Component({ |
|
||||||
selector: 'app-first-step', |
|
||||||
templateUrl: './first-step.component.html', |
|
||||||
styleUrls: ['./first-step.component.scss'] |
|
||||||
}) |
|
||||||
export class FirstStepComponent implements OnInit { |
|
||||||
|
|
||||||
constructor() { } |
|
||||||
|
|
||||||
ngOnInit(){ |
|
||||||
window.setTimeout(()=>{ |
|
||||||
//zhuan.drawRouletteWheel()
|
|
||||||
},0) |
|
||||||
|
|
||||||
} |
|
||||||
//支队数据和是否抽奖
|
|
||||||
choujiang=[ |
|
||||||
{name:"南宁支队",id:1,result :localStorage.getItem("南宁支队") || ""}, |
|
||||||
{name:"柳州支队",id:2,result :localStorage.getItem("柳州支队") || ""}, |
|
||||||
{name:"桂林支队",id:3,result :localStorage.getItem("桂林支队") || ""}, |
|
||||||
{name:"梧州支队",id:4,result :localStorage.getItem("梧州支队") || ""}, |
|
||||||
{name:"北海支队",id:5,result :localStorage.getItem("北海支队") || ""}, |
|
||||||
{name:"防城港支队",id:6,result :localStorage.getItem("防城港支队") || ""}, |
|
||||||
{name:"钦州支队",id:7,result :localStorage.getItem("钦州支队") || ""}, |
|
||||||
{name:"贵港支队",id:8,result :localStorage.getItem("贵港支队") || ""}, |
|
||||||
{name:"玉林支队",id:9,result :localStorage.getItem("玉林支队") || ""}, |
|
||||||
{name:"百色支队",id:10,result :localStorage.getItem("百色支队") || ""}, |
|
||||||
{name:"贺州支队",id:11,result :localStorage.getItem("贺州支队") || ""}, |
|
||||||
{name:"河池支队",id:12,result :localStorage.getItem("河池支队") || ""}, |
|
||||||
{name:"来宾支队",id:13,result :localStorage.getItem("来宾支队") || ""}, |
|
||||||
{name:"崇左支队",id:14,result :localStorage.getItem("崇左支队") || ""} |
|
||||||
] |
|
||||||
numList = [ |
|
||||||
{name:"1号",id:1}, |
|
||||||
{name:"2号",id:2}, |
|
||||||
{name:"3号",id:3}, |
|
||||||
{name:"4号",id:4}, |
|
||||||
{name:"5号",id:5}, |
|
||||||
{name:"6号",id:6}, |
|
||||||
{name:"7号",id:7}, |
|
||||||
{name:"8号",id:8}, |
|
||||||
{name:"9号",id:9}, |
|
||||||
{name:"10号",id:10}, |
|
||||||
{name:"11号",id:11}, |
|
||||||
{name:"12号",id:12}, |
|
||||||
{name:"13号",id:13}, |
|
||||||
{name:"14号",id:14} |
|
||||||
] |
|
||||||
//选中支队
|
|
||||||
chooseid=-1 |
|
||||||
isDraw = false |
|
||||||
clickName(item){ |
|
||||||
this.chooseid= item.id - 1 |
|
||||||
localStorage.setItem("indexNum",item.id) |
|
||||||
if(localStorage.getItem(item.name)){//如果已经抽过
|
|
||||||
this.isDraw = true |
|
||||||
}else{ |
|
||||||
this.isDraw = false |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
turnplate={ |
|
||||||
restaraunts:[], //大转盘奖品名称
|
|
||||||
colors:[], //大转盘奖品区块对应背景颜色
|
|
||||||
outsideRadius:192, //大转盘外圆的半径
|
|
||||||
textRadius:155, //大转盘奖品位置距离圆心的距离
|
|
||||||
insideRadius:68, //大转盘内圆的半径
|
|
||||||
startAngle:0, //开始角度
|
|
||||||
bRotate:false //false:停止;ture:旋转
|
|
||||||
}; |
|
||||||
|
|
||||||
} |
|
@ -1,77 +0,0 @@ |
|||||||
<!-- |
|
||||||
* @Descripttion: |
|
||||||
* @version: |
|
||||||
* @Author: sueRimn |
|
||||||
* @Date: 2020-09-25 08:48:50 |
|
||||||
* @LastEditors: sueRimn |
|
||||||
* @LastEditTime: 2020-10-14 09:08:17 |
|
||||||
--> |
|
||||||
<div class="box"> |
|
||||||
<div class="head"> |
|
||||||
<img src="../../../assets/images/head.png"> |
|
||||||
<!-- <span>指挥员能力考评抽签</span> --> |
|
||||||
<img class="ziti" src="../../../assets/images/tophead.png"> |
|
||||||
</div> |
|
||||||
<div class="mainbox"> |
|
||||||
<!-- <div class="colum" style="margin-left: 13%;width: 100px;"> |
|
||||||
<div class="centerLefta" > |
|
||||||
<div class="tanCenterbtna" id="chooseZhi"> |
|
||||||
<span style="background-color: #ff4d29;color:#FFF;" >序号</span> |
|
||||||
<span *ngFor="let item of choujiang; let key=index" [ngClass]="{'beijicolor': chooseid ==key}" >{{item.idnum}}</span> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> --> |
|
||||||
<div class="colum" style="margin-left: 150px;"> |
|
||||||
<div class="centerLeft" > |
|
||||||
<div class="tanCenterbtn" id="chooseZhi2"> |
|
||||||
<span style="background-color: #ff4d29;color:#FFF;" name="zhidui" data-id=`{{chooseid}}`>请选择支队</span> |
|
||||||
<span [attr.key]="item.id" name="bbb" *ngFor="let item of choujiang; let key=index" [ngClass]="{'beijicolor': chooseid ==key}" (click)="clickName(item)">{{item.name}} |
|
||||||
<img class="img" [ngClass]="{'block': item.result == '' ? false : true}" style="margin-left: 8px;" src="../../../assets/images/dui.png"> |
|
||||||
</span> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
<div class="colum"> |
|
||||||
<div class="centerLeft"> |
|
||||||
<div class="tanCenterbtn" id="endjieguo2"> |
|
||||||
<span style="text-align: center;background-color: #ff4d29;color:#FFF;">抽签结果:</span> |
|
||||||
<span *ngFor="let item of choujiang; let key=index" >{{item.result.zhi}}{{item.result.fuzhi}}</span> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="line" style="padding-top:50px;"> |
|
||||||
|
|
||||||
<div class="content"> |
|
||||||
|
|
||||||
<div style="clear:both; padding-top: 277px;width: 335px;margin: 0 auto;"> |
|
||||||
<div id="machine2" class="slotMachine" style="margin-left: -65px;"> |
|
||||||
<!-- <div class="slot" > |
|
||||||
{{isDraw ? '已抽签' : '开始抽签'}} |
|
||||||
</div> --> |
|
||||||
<div class="slot" *ngFor="let item of numList; let key=index">{{item.name}}</div> |
|
||||||
</div> |
|
||||||
<div id="machine6" class="slotMachine"> |
|
||||||
<div class="slot" *ngFor="let item of numList2; let key=index">{{item.name}}</div> |
|
||||||
</div> |
|
||||||
<div id="yichou" style="display: none;"> |
|
||||||
<span>以抽签</span> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
</div> |
|
||||||
|
|
||||||
<div style="text-align: center;"> |
|
||||||
<div id="slotMachineButtonShuffle2" class="slotMachineButton" style="font-size: 25px">开始抽签</div> |
|
||||||
|
|
||||||
</div> |
|
||||||
|
|
||||||
</div> |
|
||||||
|
|
||||||
|
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,183 +0,0 @@ |
|||||||
|
|
||||||
|
|
||||||
@import "../../../assets/css/laohujistyle.css"; |
|
||||||
.box{ |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
overflow: hidden; |
|
||||||
background-image: url("../../../assets/images/backgroud.png"); |
|
||||||
background-size: 100%; |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
.head{ |
|
||||||
width: 100%; |
|
||||||
height: 50px; |
|
||||||
img{ |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
} |
|
||||||
.ziti{ |
|
||||||
position: relative; |
|
||||||
bottom: 70%; |
|
||||||
left: 40%; |
|
||||||
width: 20%; |
|
||||||
height: 53%; |
|
||||||
} |
|
||||||
span{ |
|
||||||
position: relative; |
|
||||||
bottom: 70%; |
|
||||||
left: 45%; |
|
||||||
font-size: 28px; |
|
||||||
background:linear-gradient(#ff4b27, #ff6e41); |
|
||||||
-webkit-background-clip: text; |
|
||||||
color: transparent; |
|
||||||
-webkit-text-fill-color: transparent; |
|
||||||
text-fill-color: transparent; |
|
||||||
} |
|
||||||
} |
|
||||||
.mainbox { |
|
||||||
width: 99%; |
|
||||||
height: 90%; |
|
||||||
padding: 0.125rem 0.125rem 0; |
|
||||||
display: flex; |
|
||||||
} |
|
||||||
|
|
||||||
.centerLeft{ |
|
||||||
background-color: #FFF; |
|
||||||
float: left; |
|
||||||
height: 98%; |
|
||||||
width: 100%; |
|
||||||
position: relative; |
|
||||||
flex-direction: column; |
|
||||||
flex: 2%; |
|
||||||
display: flex; |
|
||||||
align-items:center; |
|
||||||
box-sizing: border-box; |
|
||||||
margin: 0 0; |
|
||||||
.tanCenterbtn{ |
|
||||||
width: 350px; |
|
||||||
height: 100%; |
|
||||||
border: 1px solid #ECEDEE; |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
user-select: none; |
|
||||||
background-size:100% 100%; |
|
||||||
span{ |
|
||||||
white-space: nowrap; |
|
||||||
font-family: Arial; |
|
||||||
color: #000; |
|
||||||
z-index:99; |
|
||||||
width: 300px; |
|
||||||
height: 40px; |
|
||||||
cursor:pointer; |
|
||||||
border-bottom:1px solid #ECEDEE; |
|
||||||
padding:8px 24px ; |
|
||||||
text-align: center; |
|
||||||
font-size: 24px; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
.centerLefta{ |
|
||||||
background-color: #FFF; |
|
||||||
float: left; |
|
||||||
height: 98%; |
|
||||||
width: 100%; |
|
||||||
position: relative; |
|
||||||
flex-direction: column; |
|
||||||
flex: 2%; |
|
||||||
display: flex; |
|
||||||
align-items:center; |
|
||||||
box-sizing: border-box; |
|
||||||
margin: 0 0; |
|
||||||
.tanCenterbtna{ |
|
||||||
width: 100px; |
|
||||||
height: 100%; |
|
||||||
border: 1px solid #ECEDEE; |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
user-select: none; |
|
||||||
background-size:100% 100%; |
|
||||||
span{ |
|
||||||
white-space: nowrap; |
|
||||||
font-family: Arial; |
|
||||||
color: #000; |
|
||||||
z-index:99; |
|
||||||
width: 50px; |
|
||||||
height: 40px; |
|
||||||
cursor:pointer; |
|
||||||
border-bottom:1px solid #ECEDEE; |
|
||||||
padding:8px 24px ; |
|
||||||
text-align: center; |
|
||||||
font-size: 24px; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
.colum{ |
|
||||||
height: 90%; |
|
||||||
width: 350px; |
|
||||||
margin-top: 72px; |
|
||||||
display:table-cell; |
|
||||||
vertical-align:middle; |
|
||||||
text-align: center; |
|
||||||
span{ |
|
||||||
font-size: 24px; |
|
||||||
|
|
||||||
//padding-top: 50%; |
|
||||||
} |
|
||||||
} |
|
||||||
.zhuan{ |
|
||||||
width: 500px; |
|
||||||
margin-left: 160px; |
|
||||||
margin-top: 10%; |
|
||||||
} |
|
||||||
.stop{ |
|
||||||
pointer-events: none; |
|
||||||
} |
|
||||||
.button { |
|
||||||
height: 48px; |
|
||||||
width: 130px; |
|
||||||
background-color:transparent; |
|
||||||
border-radius: 4px; |
|
||||||
border: 1px solid #ECEDEE; |
|
||||||
color: #FFF; |
|
||||||
padding: 12px 32px; |
|
||||||
text-align: center; |
|
||||||
text-decoration: none; |
|
||||||
display: inline-block; |
|
||||||
font-size: 16px; |
|
||||||
margin: 4px 2px; |
|
||||||
cursor: pointer; |
|
||||||
} |
|
||||||
.chongzhi{ |
|
||||||
position: relative; |
|
||||||
top: 85%; |
|
||||||
right: 17%; |
|
||||||
} |
|
||||||
|
|
||||||
//选择后加背景色 |
|
||||||
.beijicolor{ |
|
||||||
background-color:#FE693E ; |
|
||||||
} |
|
||||||
body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;} |
|
||||||
body{color:#333; font-size:12px;font-family:"Microsoft YaHei"} |
|
||||||
ul,ol{list-style-type:none;} |
|
||||||
select,input,img,select{vertical-align:middle;} |
|
||||||
input{ font-size:12px;} |
|
||||||
a{ text-decoration:none; color:#000;} |
|
||||||
a:hover{color:#c00; text-decoration:none;} |
|
||||||
.clear{clear:both;} |
|
||||||
|
|
||||||
/* 大转盘样式 */ |
|
||||||
.banner{//max-height: 650px; |
|
||||||
display: block; |
|
||||||
width: 95%; |
|
||||||
//max-width: 650px; |
|
||||||
margin-left: auto; |
|
||||||
margin-right: auto; |
|
||||||
margin-bottom: 20px; |
|
||||||
} |
|
||||||
.banner .turnplate{display:block;width:100%;position:relative;} |
|
||||||
.banner .turnplate canvas.item{width:100%;height: 100%;} |
|
||||||
.banner .turnplate img.pointer{position:absolute;width:30.5%;height:36.5%;left:34.6%;top:28.5%;} |
|
||||||
|
|
||||||
|
|
@ -1,25 +0,0 @@ |
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; |
|
||||||
|
|
||||||
import { FourStepComponent } from './four-step.component'; |
|
||||||
|
|
||||||
describe('FourStepComponent', () => { |
|
||||||
let component: FourStepComponent; |
|
||||||
let fixture: ComponentFixture<FourStepComponent>; |
|
||||||
|
|
||||||
beforeEach(async(() => { |
|
||||||
TestBed.configureTestingModule({ |
|
||||||
declarations: [ FourStepComponent ] |
|
||||||
}) |
|
||||||
.compileComponents(); |
|
||||||
})); |
|
||||||
|
|
||||||
beforeEach(() => { |
|
||||||
fixture = TestBed.createComponent(FourStepComponent); |
|
||||||
component = fixture.componentInstance; |
|
||||||
fixture.detectChanges(); |
|
||||||
}); |
|
||||||
|
|
||||||
it('should create', () => { |
|
||||||
expect(component).toBeTruthy(); |
|
||||||
}); |
|
||||||
}); |
|
@ -1,80 +0,0 @@ |
|||||||
import { Component, OnInit } from '@angular/core'; |
|
||||||
import '../../../assets/js/firststep2' |
|
||||||
@Component({ |
|
||||||
selector: 'app-four-step', |
|
||||||
templateUrl: './four-step.component.html', |
|
||||||
styleUrls: ['./four-step.component.scss'] |
|
||||||
}) |
|
||||||
export class FourStepComponent implements OnInit { |
|
||||||
|
|
||||||
constructor() { } |
|
||||||
|
|
||||||
ngOnInit(){ |
|
||||||
window.setTimeout(()=>{ |
|
||||||
//zhuan.drawRouletteWheel()
|
|
||||||
},0) |
|
||||||
|
|
||||||
} |
|
||||||
//支队数据和是否抽奖
|
|
||||||
choujiang = [ |
|
||||||
{name:"南宁支队",id:1,result :JSON.parse(localStorage.getItem("南宁支队seatnumber")) || ""}, |
|
||||||
{name:"柳州支队",id:2,result :JSON.parse(localStorage.getItem("柳州支队seatnumber")) || ""}, |
|
||||||
{name:"桂林支队",id:3,result :JSON.parse(localStorage.getItem("桂林支队seatnumber")) || ""}, |
|
||||||
{name:"梧州支队",id:4,result :JSON.parse(localStorage.getItem("梧州支队seatnumber")) || ""}, |
|
||||||
{name:"北海支队",id:5,result :JSON.parse(localStorage.getItem("北海支队seatnumber")) || ""}, |
|
||||||
{name:"防城港支队",id:6,result :JSON.parse(localStorage.getItem("防城港支队seatnumber")) || ""}, |
|
||||||
{name:"钦州支队",id:7,result :JSON.parse(localStorage.getItem("钦州支队seatnumber")) || ""}, |
|
||||||
{name:"贵港支队",id:8,result :JSON.parse(localStorage.getItem("贵港支队seatnumber")) || ""}, |
|
||||||
{name:"玉林支队",id:9,result :JSON.parse(localStorage.getItem("玉林支队seatnumber")) || ""}, |
|
||||||
{name:"百色支队",id:10,result :JSON.parse(localStorage.getItem("百色支队seatnumber")) || ""}, |
|
||||||
{name:"贺州支队",id:11,result :JSON.parse(localStorage.getItem("贺州支队seatnumber")) || ""}, |
|
||||||
{name:"河池支队",id:12,result :JSON.parse(localStorage.getItem("河池支队seatnumber")) || ""}, |
|
||||||
{name:"来宾支队",id:13,result :JSON.parse(localStorage.getItem("来宾支队seatnumber")) || ""}, |
|
||||||
{name:"崇左支队",id:14,result :JSON.parse(localStorage.getItem("崇左支队seatnumber")) || ""} |
|
||||||
] |
|
||||||
numList = [ |
|
||||||
{name:"1号",id:1}, |
|
||||||
{name:"2号",id:2}, |
|
||||||
{name:"3号",id:3}, |
|
||||||
{name:"4号",id:4}, |
|
||||||
{name:"5号",id:5}, |
|
||||||
{name:"6号",id:6}, |
|
||||||
{name:"7号",id:7}, |
|
||||||
{name:"8号",id:8}, |
|
||||||
{name:"9号",id:9}, |
|
||||||
{name:"10号",id:10}, |
|
||||||
{name:"11号",id:11}, |
|
||||||
{name:"12号",id:12}, |
|
||||||
{name:"13号",id:13}, |
|
||||||
{name:"14号",id:14} |
|
||||||
] |
|
||||||
numList2 = [ |
|
||||||
{name:"15号",id:15}, |
|
||||||
{name:"16号",id:16}, |
|
||||||
{name:"17号",id:17}, |
|
||||||
{name:"18号",id:18}, |
|
||||||
{name:"19号",id:19}, |
|
||||||
{name:"20号",id:20}, |
|
||||||
{name:"21号",id:21}, |
|
||||||
{name:"22号",id:22}, |
|
||||||
{name:"23号",id:23}, |
|
||||||
{name:"24号",id:24}, |
|
||||||
{name:"25号",id:25}, |
|
||||||
{name:"26号",id:26}, |
|
||||||
{name:"27号",id:27}, |
|
||||||
{name:"28号",id:28} |
|
||||||
] |
|
||||||
//选中支队
|
|
||||||
chooseid=-1 |
|
||||||
isDraw = false |
|
||||||
clickName(item){ |
|
||||||
this.chooseid = item.id - 1 |
|
||||||
localStorage.setItem("indexNum",item.id) |
|
||||||
if(localStorage.getItem(item.name)){//如果已经抽过
|
|
||||||
this.isDraw = true |
|
||||||
}else{ |
|
||||||
this.isDraw = false |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,80 +0,0 @@ |
|||||||
@charset "utf-8"; |
|
||||||
.htmldemo p{font-size: 16px;font-family: "微软雅黑"} |
|
||||||
|
|
||||||
|
|
||||||
.line{ |
|
||||||
padding: 50px 0px 25px 0px; |
|
||||||
width:100%; |
|
||||||
|
|
||||||
} |
|
||||||
.content{ |
|
||||||
text-align: center; |
|
||||||
background: url('../../assets/images/machine.png') no-repeat 50% 120px; |
|
||||||
height: 500px; |
|
||||||
} |
|
||||||
.slotMachine{ |
|
||||||
width: 40%; |
|
||||||
border: 5px solid #000; |
|
||||||
height: 100px; |
|
||||||
line-height: 100px; |
|
||||||
padding: 0px; |
|
||||||
overflow: hidden; |
|
||||||
display: inline-block; |
|
||||||
text-align: center; |
|
||||||
background-color: #ffffff; |
|
||||||
font-size: 30px; |
|
||||||
font-weight: 900; |
|
||||||
} |
|
||||||
.slotMachine .slot{ |
|
||||||
height:100px; |
|
||||||
background-position-x: 55%; |
|
||||||
background-repeat: no-repeat; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
.slotMachineButton{ |
|
||||||
width:100px; |
|
||||||
height: 100px; |
|
||||||
overflow: hidden; |
|
||||||
display: inline-block; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
.slotMachineButton { |
|
||||||
border-radius: 3px; |
|
||||||
background-color:#fb9e25; |
|
||||||
display:inline-block; |
|
||||||
color:#ffffff; |
|
||||||
font-size:36px; |
|
||||||
font-weight:bold; |
|
||||||
font-style:normal; |
|
||||||
height:50px; |
|
||||||
line-height:50px; |
|
||||||
margin-top:10px; |
|
||||||
margin-right:5%; |
|
||||||
width:100px; |
|
||||||
text-decoration:none; |
|
||||||
text-align:center; |
|
||||||
cursor:pointer; |
|
||||||
padding: 3px; |
|
||||||
} |
|
||||||
.slotMachineButton:hover { |
|
||||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #fb9e25), color-stop(1, #ffc477) ); |
|
||||||
background:-moz-linear-gradient( center top, #fb9e25 5%, #ffc477 100% ); |
|
||||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fb9e25', endColorstr='#ffc477'); |
|
||||||
background-color:#fb9e25; |
|
||||||
}.slotMachineButton:active { |
|
||||||
position:relative; |
|
||||||
top:1px; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
.disabled{ |
|
||||||
pointer-events: none; |
|
||||||
background-color: grey; |
|
||||||
} |
|
||||||
.img{ |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.block{ |
|
||||||
display: inline-block!important; |
|
||||||
} |
|
Before Width: | Height: | Size: 6.9 KiB |
@ -1,86 +0,0 @@ |
|||||||
$(document).ready(function(){ |
|
||||||
var index = 0 |
|
||||||
var selected = null //点击的单位名称
|
|
||||||
var selectedIndex = null //点击的单位index
|
|
||||||
var machine = $("#machine4").slotMachine({ |
|
||||||
active : 0, |
|
||||||
delay : 500, |
|
||||||
randomize : function(activeElementIndex){ |
|
||||||
console.log("xxxxx") |
|
||||||
if(selected == "南宁支队"){ |
|
||||||
localStorage.setItem(selected,"5号") |
|
||||||
return 5;
|
|
||||||
}else if(selected == "柳州支队"){ |
|
||||||
localStorage.setItem(selected,'10号') |
|
||||||
return 10; |
|
||||||
}else if(selected == "桂林支队"){ |
|
||||||
localStorage.setItem(selected,'14号') |
|
||||||
return 14; |
|
||||||
}else if(selected == "梧州支队"){ |
|
||||||
localStorage.setItem(selected,'3号') |
|
||||||
return 3; |
|
||||||
}else if(selected == "北海支队"){ |
|
||||||
console.log(1996,) |
|
||||||
localStorage.setItem(selected,'8号') |
|
||||||
return 8; |
|
||||||
}else if(selected == "防城港支队"){ |
|
||||||
localStorage.setItem(selected,'13号') |
|
||||||
return 13; |
|
||||||
}else if(selected == "钦州支队"){ |
|
||||||
localStorage.setItem(selected,'6号') |
|
||||||
return 6; |
|
||||||
}else if(selected == "贵港支队"){ |
|
||||||
localStorage.setItem(selected,'1号') |
|
||||||
return 1; |
|
||||||
}else if(selected == "玉林支队"){ |
|
||||||
localStorage.setItem(selected,'7号') |
|
||||||
return 7; |
|
||||||
}else if(selected == "百色支队"){ |
|
||||||
localStorage.setItem(selected,'12号') |
|
||||||
return 12; |
|
||||||
}else if(selected == "贺州支队"){ |
|
||||||
localStorage.setItem(selected,'2号') |
|
||||||
return 2; |
|
||||||
}else if(selected == "河池支队"){ |
|
||||||
localStorage.setItem(selected,'4号') |
|
||||||
return 4; |
|
||||||
}else if(selected == "来宾支队"){ |
|
||||||
localStorage.setItem(selected,'9号') |
|
||||||
return 9; |
|
||||||
}else if(selected == "崇左支队"){ |
|
||||||
localStorage.setItem(selected,'11号') |
|
||||||
return 11; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
}); |
|
||||||
|
|
||||||
$("#slotMachineButtonShuffle").click(function(){ |
|
||||||
if(!selected){ |
|
||||||
alert("请先选择单位")
|
|
||||||
}else{ |
|
||||||
machine.shuffle(); |
|
||||||
$("#slotMachineButtonShuffle").addClass("disabled"); |
|
||||||
setTimeout(() => { |
|
||||||
machine.stop(); |
|
||||||
// $("#slotMachineButtonShuffle").removeClass("disabled");
|
|
||||||
setTimeout(() => { |
|
||||||
$("#endjieguo span").eq(selectedIndex).html(window.localStorage[selected]) |
|
||||||
$("#chooseZhi .img").eq(selectedIndex - 1).css("display","inline-block"); |
|
||||||
}, 1300); |
|
||||||
}, 1000); |
|
||||||
} |
|
||||||
|
|
||||||
}); |
|
||||||
|
|
||||||
//左侧表格点击事件
|
|
||||||
$("span[name='aaa']").on("click",function(e,index){ |
|
||||||
selected = $(this)[0].innerText |
|
||||||
selectedIndex = localStorage.getItem("indexNum") |
|
||||||
if($("#endjieguo span").eq(selectedIndex)[0].innerText){ |
|
||||||
$("#slotMachineButtonShuffle").addClass("disabled"); |
|
||||||
}else{ |
|
||||||
$("#slotMachineButtonShuffle").removeClass("disabled"); |
|
||||||
} |
|
||||||
}) |
|
||||||
}); |
|
@ -1,151 +0,0 @@ |
|||||||
$(document).ready(function(){ |
|
||||||
var index = 0 |
|
||||||
var selected = null //点击的单位名称
|
|
||||||
var selectedtime = null //点击的单位名称 + 'time'
|
|
||||||
var selectedIndex = null //点击的单位index
|
|
||||||
var machine = $("#machine2").slotMachine({ |
|
||||||
active : 0, |
|
||||||
delay : 500, |
|
||||||
randomize : function(activeElementIndex){ |
|
||||||
if(selected == "南宁支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"8号",fuzhi:"21号"})) |
|
||||||
return 7;
|
|
||||||
}else if(selected == "柳州支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"12号",fuzhi:"26号"})) |
|
||||||
return 11; |
|
||||||
}else if(selected == "桂林支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"14号",fuzhi:"15号"})) |
|
||||||
return 13; |
|
||||||
}else if(selected == "梧州支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"13号",fuzhi:"28号"})) |
|
||||||
return 12; |
|
||||||
}else if(selected == "北海支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"4号",fuzhi:"22号"})) |
|
||||||
return 3; |
|
||||||
}else if(selected == "防城港支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"1号",fuzhi:"16号"})) |
|
||||||
return 0; |
|
||||||
}else if(selected == "钦州支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"10号",fuzhi:"25号"})) |
|
||||||
return 9; |
|
||||||
}else if(selected == "贵港支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"11号",fuzhi:"19号"})) |
|
||||||
return 10; |
|
||||||
}else if(selected == "玉林支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"2号",fuzhi:"27号"})) |
|
||||||
return 1; |
|
||||||
}else if(selected == "百色支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"9号",fuzhi:"20号"})) |
|
||||||
return 8; |
|
||||||
}else if(selected == "贺州支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"3号",fuzhi:"24号"})) |
|
||||||
return 2; |
|
||||||
}else if(selected == "河池支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"6号",fuzhi:"18号"})) |
|
||||||
return 5; |
|
||||||
}else if(selected == "来宾支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"7号",fuzhi:"23号"})) |
|
||||||
return 6; |
|
||||||
}else if(selected == "崇左支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"5号",fuzhi:"17号"})) |
|
||||||
return 4; |
|
||||||
} |
|
||||||
} |
|
||||||
}); |
|
||||||
var machine6 = $("#machine6").slotMachine({ |
|
||||||
active : 1, |
|
||||||
delay : 500, |
|
||||||
randomize : function(activeElementIndex){ |
|
||||||
if(selected == "南宁支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"8号",fuzhi:"21号"})) |
|
||||||
return 6;
|
|
||||||
}else if(selected == "柳州支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"12号",fuzhi:"26号"})) |
|
||||||
return 11; |
|
||||||
}else if(selected == "桂林支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"14号",fuzhi:"15号"})) |
|
||||||
return 0; |
|
||||||
}else if(selected == "梧州支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"13号",fuzhi:"28号"})) |
|
||||||
return 13; |
|
||||||
}else if(selected == "北海支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"4号",fuzhi:"22号"})) |
|
||||||
return 7; |
|
||||||
}else if(selected == "防城港支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"1号",fuzhi:"16号"})) |
|
||||||
return 1; |
|
||||||
}else if(selected == "钦州支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"10号",fuzhi:"25号"})) |
|
||||||
return 10; |
|
||||||
}else if(selected == "贵港支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"11号",fuzhi:"19号"})) |
|
||||||
return 4; |
|
||||||
}else if(selected == "玉林支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"2号",fuzhi:"27号"})) |
|
||||||
return 12; |
|
||||||
}else if(selected == "百色支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"9号",fuzhi:"20号"})) |
|
||||||
return 5; |
|
||||||
}else if(selected == "贺州支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"3号",fuzhi:"24号"})) |
|
||||||
return 9; |
|
||||||
}else if(selected == "河池支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"6号",fuzhi:"18号"})) |
|
||||||
return 3; |
|
||||||
}else if(selected == "来宾支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"7号",fuzhi:"23号"})) |
|
||||||
return 8; |
|
||||||
}else if(selected == "崇左支队"){ |
|
||||||
localStorage.setItem(selectedtime,JSON.stringify({zhi:"5号",fuzhi:"17号"})) |
|
||||||
return 2; |
|
||||||
} |
|
||||||
} |
|
||||||
}); |
|
||||||
var data = [ |
|
||||||
{'南宁支队':'8号21号'}, |
|
||||||
{'柳州支队':'12号26号'}, |
|
||||||
{'桂林支队':'14号15号'}, |
|
||||||
{'梧州支队':'13号28号'}, |
|
||||||
{'北海支队':'4号22号'}, |
|
||||||
{'防城港支队':'1号16号'}, |
|
||||||
{'钦州支队':'10号25号'}, |
|
||||||
{'贵港支队':'11号19号'}, |
|
||||||
{'玉林支队':'2号27号'}, |
|
||||||
{'百色支队':'9号20号'}, |
|
||||||
{'贺州支队':'3号24号'}, |
|
||||||
{'河池支队':'6号18号'}, |
|
||||||
{'来宾支队':'7号23号'}, |
|
||||||
{'崇左支队':'5号17号'} |
|
||||||
] |
|
||||||
|
|
||||||
$("#slotMachineButtonShuffle2").click(function(){ |
|
||||||
if(!selected){ |
|
||||||
alert("请先选择单位")
|
|
||||||
}else{ |
|
||||||
machine.shuffle(); |
|
||||||
machine6.shuffle(); |
|
||||||
$("#slotMachineButtonShuffle2").addClass("disabled"); |
|
||||||
setTimeout(() => { |
|
||||||
machine.stop(); |
|
||||||
machine6.stop(); |
|
||||||
setTimeout(() => { |
|
||||||
$("#endjieguo2 span").eq(selectedIndex).html(data[selectedIndex - 1][selected]) |
|
||||||
$("#chooseZhi2 .img").eq(selectedIndex - 1).css("display","inline-block"); |
|
||||||
}, 1300); |
|
||||||
}, 1000); |
|
||||||
} |
|
||||||
}); |
|
||||||
|
|
||||||
//左侧表格点击事件
|
|
||||||
$("span[name='bbb']").on("click",function(e,index){ |
|
||||||
selected = $(this)[0].innerText |
|
||||||
selectedtime = $(this)[0].innerText + 'seatnumber' |
|
||||||
selectedIndex = localStorage.getItem("indexNum") |
|
||||||
console.log(456,selected,selectedIndex) |
|
||||||
if($("#endjieguo2 span").eq(selectedIndex)[0].innerText){ |
|
||||||
$("#slotMachineButtonShuffle2").addClass("disabled"); |
|
||||||
}else{ |
|
||||||
$("#slotMachineButtonShuffle2").removeClass("disabled"); |
|
||||||
} |
|
||||||
}) |
|
||||||
}); |
|
@ -1,564 +0,0 @@ |
|||||||
/*! SlotMachine - v2.0.7 - 2014-11-06 |
|
||||||
* https://github.com/josex2r/jQuery-SlotMachine
|
|
||||||
* Copyright (c) 2014 Jose Luis Represa; Licensed MIT */ |
|
||||||
;(function($, window, document, undefined){ |
|
||||||
|
|
||||||
var pluginName = "slotMachine", |
|
||||||
defaults = { |
|
||||||
active : 0, //Active element [int]
|
|
||||||
delay : 200, //Animation time [int]
|
|
||||||
auto : false, //Repeat delay [false||int]
|
|
||||||
randomize : null, //Randomize function, must return an integer with the selected position
|
|
||||||
complete : null, //Callback function(result)
|
|
||||||
//stopHidden : true //Stops animations if the element isn´t visible on the screen
|
|
||||||
}; |
|
||||||
|
|
||||||
var FX_FAST = 'slotMachineBlurFast', |
|
||||||
FX_NORMAL = 'slotMachineBlurMedium', |
|
||||||
FX_SLOW = 'slotMachineBlurSlow', |
|
||||||
FX_GRADIENT = 'slotMachineGradient', |
|
||||||
FX_STOP = FX_GRADIENT; |
|
||||||
|
|
||||||
//Set required styles, filters and masks
|
|
||||||
$(document).ready(function(){ |
|
||||||
|
|
||||||
//Fast blur
|
|
||||||
if( $('filter#slotMachineBlurFilterFast').length<=0 ){ |
|
||||||
$('body').append('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="0" height="0">'+ |
|
||||||
'<filter id="slotMachineBlurFilterFast">'+ |
|
||||||
'<feGaussianBlur stdDeviation="5" />'+ |
|
||||||
'</filter>'+ |
|
||||||
'</svg>'); |
|
||||||
} |
|
||||||
|
|
||||||
//Medium blur
|
|
||||||
if( $('filter#slotMachineBlurFilterMedium').length<=0 ){ |
|
||||||
$('body').append('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="0" height="0">'+ |
|
||||||
'<filter id="slotMachineBlurFilterMedium">'+ |
|
||||||
'<feGaussianBlur stdDeviation="3" />'+ |
|
||||||
'</filter>'+ |
|
||||||
'</svg>'); |
|
||||||
} |
|
||||||
|
|
||||||
//Slow blur
|
|
||||||
if( $('filter#slotMachineBlurFilterSlow').length<=0 ){ |
|
||||||
$('body').append('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="0" height="0">'+ |
|
||||||
'<filter id="slotMachineBlurFilterSlow">'+ |
|
||||||
'<feGaussianBlur stdDeviation="1" />'+ |
|
||||||
'</filter>'+ |
|
||||||
'</svg>'); |
|
||||||
} |
|
||||||
|
|
||||||
//Fade mask
|
|
||||||
if( $('mask#slotMachineFadeMask').length<=0 ){ |
|
||||||
$('body').append('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="0" height="0">'+ |
|
||||||
'<mask id="slotMachineFadeMask" maskUnits="objectBoundingBox" maskContentUnits="objectBoundingBox">'+ |
|
||||||
'<linearGradient id="slotMachineFadeGradient" gradientUnits="objectBoundingBox" x="0" y="0">'+ |
|
||||||
'<stop stop-color="white" stop-opacity="0" offset="0"></stop>'+ |
|
||||||
'<stop stop-color="white" stop-opacity="1" offset="0.25"></stop>'+ |
|
||||||
'<stop stop-color="white" stop-opacity="1" offset="0.75"></stop>'+ |
|
||||||
'<stop stop-color="white" stop-opacity="0" offset="1"></stop>'+ |
|
||||||
'</linearGradient>'+ |
|
||||||
'<rect x="0" y="-1" width="1" height="1" transform="rotate(90)" fill="url(#slotMachineFadeGradient)"></rect>'+ |
|
||||||
'</mask>'+ |
|
||||||
'</svg>'); |
|
||||||
} |
|
||||||
|
|
||||||
//CSS classes
|
|
||||||
$('body').append('<style>' + |
|
||||||
'.' + FX_FAST + '{-webkit-filter: blur(5px);-moz-filter: blur(5px);-o-filter: blur(5px);-ms-filter: blur(5px);filter: blur(5px);filter: url(#slotMachineBlurFilterFast);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="5")}' + |
|
||||||
'.' + FX_NORMAL + '{-webkit-filter: blur(3px);-moz-filter: blur(3px);-o-filter: blur(3px);-ms-filter: blur(3px);filter: blur(3px);filter: url(#slotMachineBlurFilterMedium);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="3")}' + |
|
||||||
'.' + FX_SLOW + '{-webkit-filter: blur(1px);-moz-filter: blur(1px);-o-filter: blur(1px);-ms-filter: blur(1px);filter: blur(1px);filter: url(#slotMachineBlurFilterSlow);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="1")}' + |
|
||||||
'.' + FX_GRADIENT + '{' + |
|
||||||
'-webkit-mask-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0,0,0,0)), color-stop(25%, rgba(0,0,0,1)), color-stop(75%, rgba(0,0,0,1)), color-stop(100%, rgba(0,0,0,0)) );' + |
|
||||||
'mask: url(#slotMachineFadeMask);' + |
|
||||||
'}'+ |
|
||||||
'</style>'); |
|
||||||
|
|
||||||
}); |
|
||||||
|
|
||||||
//Required easing functions
|
|
||||||
if(typeof $.easing.easeOutBounce !== 'function'){ |
|
||||||
//From jQuery easing, extend jQuery animations functions
|
|
||||||
$.extend( $.easing, { |
|
||||||
easeOutBounce: function (x, t, b, c, d) { |
|
||||||
if ((t/=d) < (1/2.75)) { |
|
||||||
return c*(7.5625*t*t) + b; |
|
||||||
} else if (t < (2/2.75)) { |
|
||||||
return c*(7.5625*(t-=(1.5/2.75))*t + 0.75) + b; |
|
||||||
} else if (t < (2.5/2.75)) { |
|
||||||
return c*(7.5625*(t-=(2.25/2.75))*t + 0.9375) + b; |
|
||||||
} else { |
|
||||||
return c*(7.5625*(t-=(2.625/2.75))*t + 0.984375) + b; |
|
||||||
} |
|
||||||
}, |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
function Timer(fn, delay){ |
|
||||||
var startTime, |
|
||||||
self = this, |
|
||||||
timer, |
|
||||||
_fn = fn, |
|
||||||
_args = arguments, |
|
||||||
_delay = delay; |
|
||||||
|
|
||||||
this.running = false; |
|
||||||
|
|
||||||
this.onpause = function(){}; |
|
||||||
this.onresume = function(){}; |
|
||||||
|
|
||||||
this.cancel = function(){ |
|
||||||
this.running = false; |
|
||||||
clearTimeout(timer); |
|
||||||
}; |
|
||||||
|
|
||||||
this.pause = function(){ |
|
||||||
if( this.running ){ |
|
||||||
delay -= new Date().getTime() - startTime; |
|
||||||
this.cancel(); |
|
||||||
this.onpause(); |
|
||||||
} |
|
||||||
}; |
|
||||||
|
|
||||||
this.resume = function(){ |
|
||||||
if( !this.running ){ |
|
||||||
this.running = true; |
|
||||||
startTime = new Date().getTime(); |
|
||||||
|
|
||||||
timer = setTimeout(function(){ |
|
||||||
_fn.apply(self, Array.prototype.slice.call(_args, 2, _args.length)); //Execute function with initial arguments, removing (fn & delay)
|
|
||||||
}, delay); |
|
||||||
|
|
||||||
this.onresume(); |
|
||||||
} |
|
||||||
}; |
|
||||||
|
|
||||||
this.reset = function(){ |
|
||||||
this.cancel(); |
|
||||||
this.running = true; |
|
||||||
delay = _delay; |
|
||||||
timer = setTimeout(function(){ |
|
||||||
_fn.apply(self, Array.prototype.slice.call(_args, 2, _args.length)); //Execute function with initial arguments, removing (fn & delay)
|
|
||||||
}, _delay); |
|
||||||
}; |
|
||||||
|
|
||||||
this.add = function(extraDelay){ |
|
||||||
this.pause(); |
|
||||||
delay += extraDelay; |
|
||||||
this.resume(); |
|
||||||
}; |
|
||||||
|
|
||||||
this.resume(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* @desc PUBLIC - Makes Slot Machine animation effect |
|
||||||
* @param DOM element - Html element |
|
||||||
* @param object settings - Plugin configuration params |
|
||||||
* @return jQuery node - Returns jQuery selector with some new functions (shuffle, stop, next, auto, active) |
|
||||||
*/ |
|
||||||
function SlotMachine(element, options){ |
|
||||||
this.element = element; |
|
||||||
this.settings = $.extend( {}, defaults, options); |
|
||||||
this.defaults = defaults; |
|
||||||
this.name = pluginName; |
|
||||||
|
|
||||||
//jQuery selector
|
|
||||||
this.$slot = $(element); |
|
||||||
//Slot Machine elements
|
|
||||||
this.$tiles = this.$slot.children(); |
|
||||||
//Container to wrap $tiles
|
|
||||||
this.$container = null; |
|
||||||
//Min marginTop offset
|
|
||||||
this._minTop = null; |
|
||||||
//Max marginTop offset
|
|
||||||
this._maxTop = null; |
|
||||||
//First element (the last of the html container)
|
|
||||||
this._$fakeFirstTile = null; |
|
||||||
//Last element (the first of the html container)
|
|
||||||
this._$fakeLastTile = null; |
|
||||||
//Timeout recursive function to handle auto (settings.auto)
|
|
||||||
this._timer = null; |
|
||||||
//Callback function
|
|
||||||
this._oncompleteStack = [ this.settings.complete ]; |
|
||||||
//Number of spins left before stop
|
|
||||||
this._spinsLeft = null; |
|
||||||
//Future result
|
|
||||||
this.futureActive = null; |
|
||||||
//Machine is running?
|
|
||||||
this.isRunning = false; |
|
||||||
//Current active element
|
|
||||||
this.active = this.settings.active; |
|
||||||
|
|
||||||
this.$slot.css("overflow", "hidden"); |
|
||||||
|
|
||||||
//Validate active index
|
|
||||||
if(this.settings.active < 0 || this.settings.active >= this.$tiles.length ){ |
|
||||||
this.settings.active = 0; |
|
||||||
this.active = 0; |
|
||||||
} |
|
||||||
|
|
||||||
//Wrap elements inside $container
|
|
||||||
this.$tiles.wrapAll("<div class='slotMachineContainer' />"); |
|
||||||
this.$container = this.$slot.find(".slotMachineContainer"); |
|
||||||
|
|
||||||
//Set max top offset
|
|
||||||
this._maxTop = - this.$container.height(); |
|
||||||
|
|
||||||
//Add the last element behind the first to prevent the jump effect
|
|
||||||
this._$fakeFirstTile = this.$tiles.last().clone(); |
|
||||||
this._$fakeLastTile = this.$tiles.first().clone(); |
|
||||||
|
|
||||||
this.$container.prepend( this._$fakeFirstTile ); |
|
||||||
this.$container.append( this._$fakeLastTile ); |
|
||||||
|
|
||||||
//Set min top offset
|
|
||||||
this._minTop = - this._$fakeFirstTile.outerHeight(); |
|
||||||
|
|
||||||
//Show active element
|
|
||||||
this.$container.css('margin-top', this.getTileOffset(this.active)); |
|
||||||
|
|
||||||
//Start auto animation
|
|
||||||
if(this.settings.auto !== false){ |
|
||||||
if(this.settings.auto === true){ |
|
||||||
this.shuffle(); |
|
||||||
}else{ |
|
||||||
this.auto(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Get element offset top |
|
||||||
* @param int index - Element position |
|
||||||
* @return int - Negative offset in px |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.getTileOffset = function(index){ |
|
||||||
var offset = 0; |
|
||||||
for(var i=0; i<index; i++){ |
|
||||||
offset += $( this.$tiles.get(i) ).outerHeight(); |
|
||||||
} |
|
||||||
return - offset + this._minTop; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Get current showing element index |
|
||||||
* @return int - Element index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.getVisibleTile = function(){ |
|
||||||
var firstTileHeight = this.$tiles.first().height(), |
|
||||||
containerMarginTop = parseInt( this.$container.css('margin-top').replace(/px/, ''), 10); |
|
||||||
|
|
||||||
return Math.abs( Math.round( containerMarginTop / firstTileHeight ) ) - 1; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PUBLIC - Changes randomize function |
|
||||||
* @param function|int - Set new randomize function |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.setRandomize = function(rnd){ |
|
||||||
if(typeof rnd === 'number'){ |
|
||||||
var _fn = function(){ |
|
||||||
return rnd; |
|
||||||
}; |
|
||||||
this.settings.randomize = _fn; |
|
||||||
}else{ |
|
||||||
this.settings.randomize = rnd; |
|
||||||
} |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Get random element different than last shown |
|
||||||
* @param boolean cantBeTheCurrent - true||undefined if cant be choosen the current element, prevents repeat |
|
||||||
* @return int - Element index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.getRandom = function(cantBeTheCurrent){ |
|
||||||
var rnd, |
|
||||||
removePrevious = cantBeTheCurrent || false; |
|
||||||
do{ |
|
||||||
rnd = Math.floor( Math.random() * this.$tiles.length); |
|
||||||
}while((removePrevious && rnd === this.active) && rnd >= 0); |
|
||||||
|
|
||||||
return rnd; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Get random element based on the custom randomize function |
|
||||||
* @return int - Element index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.getCustom = function(){ |
|
||||||
var choosen; |
|
||||||
if(this.settings.randomize !== null && typeof this.settings.randomize === 'function'){ |
|
||||||
var index = this.settings.randomize.apply(this, [this.active]); |
|
||||||
if(index < 0 || index >= this.$tiles.length){ |
|
||||||
index = 0; |
|
||||||
} |
|
||||||
choosen = index; |
|
||||||
}else{ |
|
||||||
choosen = this.getRandom(); |
|
||||||
} |
|
||||||
return choosen; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Get the previous element |
|
||||||
* @return int - Element index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.getPrev = function(){ |
|
||||||
var prevIndex = (this.active-1 < 0) ? (this.$tiles.length - 1) : (this.active - 1); |
|
||||||
return prevIndex; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Get the next element |
|
||||||
* @return int - Element index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.getNext = function(){ |
|
||||||
var nextIndex = (this.active + 1 < this.$tiles.length) ? (this.active + 1) : 0; |
|
||||||
return nextIndex; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Set CSS classes to make speed effect |
|
||||||
* @param string FX_SPEED - Element speed [FX_FAST_BLUR||FX_NORMAL_BLUR||FX_SLOW_BLUR||FX_STOP] |
|
||||||
* @param string||boolean fade - Set fade gradient effect |
|
||||||
*/ |
|
||||||
SlotMachine.prototype._setAnimationFX = function(FX_SPEED, fade){ |
|
||||||
var self = this; |
|
||||||
|
|
||||||
setTimeout(function(){ |
|
||||||
self.$tiles.removeClass(FX_FAST).removeClass(FX_NORMAL).removeClass(FX_SLOW).addClass(FX_SPEED); |
|
||||||
|
|
||||||
if(fade !== true || FX_SPEED === FX_STOP){ |
|
||||||
self.$slot.add(self.$tiles).removeClass(FX_GRADIENT); |
|
||||||
}else{ |
|
||||||
self.$slot.add(self.$tiles).addClass(FX_GRADIENT); |
|
||||||
} |
|
||||||
}, this.settings.delay / 4); |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Reset active element position |
|
||||||
*/ |
|
||||||
SlotMachine.prototype._resetPosition = function(){ |
|
||||||
this.$container.css("margin-top", this.getTileOffset(this.active)); |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Checks if the machine is on the screen |
|
||||||
* @return int - Returns true if machine is on the screen |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.isVisible = function(){ |
|
||||||
//Stop animation if element is [above||below] screen, best for performance
|
|
||||||
var above = this.$slot.offset().top > $(window).scrollTop() + $(window).height(), |
|
||||||
below = $(window).scrollTop() > this.$slot.height() + this.$slot.offset().top; |
|
||||||
|
|
||||||
return !above && !below; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PUBLIC - SELECT previous element relative to the current active element |
|
||||||
* @return int - Returns result index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.prev = function(){ |
|
||||||
this.futureActive = this.getPrev(); |
|
||||||
this.isRunning = true; |
|
||||||
this.stop(false); |
|
||||||
return this.futureActive; |
|
||||||
};
|
|
||||||
/** |
|
||||||
* @desc PUBLIC - SELECT next element relative to the current active element |
|
||||||
* @return int - Returns result index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.next = function(){ |
|
||||||
this.futureActive = this.getNext(); |
|
||||||
this.isRunning = true; |
|
||||||
this.stop(false); |
|
||||||
return this.futureActive; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Starts shuffling the elements |
|
||||||
* @param int repeations - Number of shuffles (undefined to make infinite animation |
|
||||||
* @return int - Returns result index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.shuffle = function( spins, onComplete ){
|
|
||||||
var self = this; |
|
||||||
/* |
|
||||||
if(!this.isVisible() && this.settings.stopHidden === true){ |
|
||||||
return this.stop(); |
|
||||||
} |
|
||||||
*/ |
|
||||||
if(onComplete !== undefined){ |
|
||||||
//this._oncompleteStack.push(onComplete);
|
|
||||||
this._oncompleteStack[1] = onComplete; |
|
||||||
} |
|
||||||
|
|
||||||
this.isRunning = true; |
|
||||||
var delay = this.settings.delay; |
|
||||||
|
|
||||||
if(this.futureActive === null){ |
|
||||||
//Get random or custom element
|
|
||||||
var rnd = this.getCustom(); |
|
||||||
this.futureActive = rnd; |
|
||||||
} |
|
||||||
|
|
||||||
/*if(this.$slot.attr("id")==="machine1") |
|
||||||
console.log(this.futureActive)*/ |
|
||||||
//Decreasing spin
|
|
||||||
if(typeof spins === 'number'){ |
|
||||||
//Change delay and speed
|
|
||||||
switch( spins){ |
|
||||||
case 1: |
|
||||||
case 2: |
|
||||||
this._setAnimationFX(FX_SLOW, true); |
|
||||||
break; |
|
||||||
case 3: |
|
||||||
case 4: |
|
||||||
this._setAnimationFX(FX_NORMAL, true); |
|
||||||
delay /= 1.5; |
|
||||||
break; |
|
||||||
default: |
|
||||||
this._setAnimationFX(FX_FAST, true); |
|
||||||
delay /= 2; |
|
||||||
} |
|
||||||
//Infinite spin
|
|
||||||
}else{ |
|
||||||
//Set animation effects
|
|
||||||
this._setAnimationFX(FX_FAST, true); |
|
||||||
delay /= 2; |
|
||||||
} |
|
||||||
|
|
||||||
//Perform animation
|
|
||||||
this.$container.animate({ |
|
||||||
marginTop : this._maxTop |
|
||||||
}, delay, 'linear', function(){ |
|
||||||
//Reset top position
|
|
||||||
self.$container.css('margin-top', 0); |
|
||||||
|
|
||||||
if(spins - 1 <= 0){ |
|
||||||
self.stop(); |
|
||||||
}else{ |
|
||||||
//Repeat animation
|
|
||||||
self.shuffle(spins - 1); |
|
||||||
} |
|
||||||
}); |
|
||||||
|
|
||||||
return this.futureActive; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Stop shuffling the elements |
|
||||||
* @return int - Returns result index |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.stop = function( showGradient ){ |
|
||||||
if(!this.isRunning){ |
|
||||||
return; |
|
||||||
} |
|
||||||
var self = this; |
|
||||||
|
|
||||||
//Stop animation NOW!!!!!!!
|
|
||||||
this.$container.clearQueue().stop(true, false); |
|
||||||
|
|
||||||
this._setAnimationFX(FX_SLOW, showGradient === undefined ? true : showGradient); |
|
||||||
|
|
||||||
this.isRunning = true; |
|
||||||
|
|
||||||
//Set current active element
|
|
||||||
this.active = this.getVisibleTile(); |
|
||||||
|
|
||||||
//Check direction to prevent jumping
|
|
||||||
if(this.futureActive > this.active){ |
|
||||||
//We are moving to the prev (first to last)
|
|
||||||
if(this.active === 0 && this.futureActive === this.$tiles.length-1){ |
|
||||||
this.$container.css('margin-top', this.getTileOffset(this.$tiles.length) ); |
|
||||||
} |
|
||||||
}else{ |
|
||||||
//We are moving to the next (last to first)
|
|
||||||
if(this.active === this.$tiles.length - 1 && this.futureActive === 0){ |
|
||||||
this.$container.css('margin-top', 0); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
//Update last choosen element index
|
|
||||||
this.active = this.futureActive; |
|
||||||
this.futureActive = null; |
|
||||||
|
|
||||||
//Get delay
|
|
||||||
var delay = this.settings.delay * 3; |
|
||||||
|
|
||||||
//Perform animation
|
|
||||||
this.$container.animate({ |
|
||||||
marginTop : this.getTileOffset(this.active) |
|
||||||
}, delay, 'easeOutBounce', function (){ |
|
||||||
|
|
||||||
self.isRunning = false; |
|
||||||
|
|
||||||
//Filter callbacks
|
|
||||||
/* |
|
||||||
self._oncompleteStack = Array.prototype.filter.call(self._oncompleteStack, function(fn){ |
|
||||||
return typeof fn === 'function'; |
|
||||||
}); |
|
||||||
//Ececute callbacks
|
|
||||||
Array.prototype.map.call(self._oncompleteStack, function(fn, index){ |
|
||||||
if(typeof fn === 'function'){ |
|
||||||
fn.apply(self, [self.active]); |
|
||||||
self._oncompleteStack[index] = null; |
|
||||||
} |
|
||||||
}); |
|
||||||
*/ |
|
||||||
if(typeof self._oncompleteStack[0] === 'function'){ |
|
||||||
self._oncompleteStack[0].apply(self, [self.active]); |
|
||||||
} |
|
||||||
if(typeof self._oncompleteStack[1] === 'function'){ |
|
||||||
self._oncompleteStack[1].apply(self, [self.active]); |
|
||||||
} |
|
||||||
}); |
|
||||||
|
|
||||||
//Disable blur
|
|
||||||
setTimeout(function(){ |
|
||||||
self._setAnimationFX(FX_STOP, false); |
|
||||||
}, delay / 1.75); |
|
||||||
|
|
||||||
return this.active; |
|
||||||
}; |
|
||||||
/** |
|
||||||
* @desc PRIVATE - Start auto shufflings, animation stops each 3 repeations. Then restart animation recursively |
|
||||||
*/ |
|
||||||
SlotMachine.prototype.auto = function(){ |
|
||||||
var self = this; |
|
||||||
|
|
||||||
this._timer = new Timer(function(){ |
|
||||||
if(typeof self.settings.randomize !== 'function'){ |
|
||||||
self.futureActive = self.getNext(); |
|
||||||
} |
|
||||||
self.isRunning = true; |
|
||||||
self.shuffle(5, function(){ |
|
||||||
self._timer.reset(); |
|
||||||
}); |
|
||||||
|
|
||||||
}, this.settings.auto);
|
|
||||||
}; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* |
|
||||||
* Create new plugin instance if needed and return it |
|
||||||
*/ |
|
||||||
function _getInstance(element, options){ |
|
||||||
var machine; |
|
||||||
if ( !$.data(element[0], 'plugin_' + pluginName) ){ |
|
||||||
machine = new SlotMachine(element, options); |
|
||||||
$.data(element[0], 'plugin_' + pluginName, machine); |
|
||||||
}else{ |
|
||||||
machine = $.data(element[0], 'plugin_' + pluginName); |
|
||||||
} |
|
||||||
return machine; |
|
||||||
} |
|
||||||
|
|
||||||
/* |
|
||||||
* Chainable instance |
|
||||||
*/ |
|
||||||
$.fn[pluginName] = function(options){ |
|
||||||
if( this.length===1 ){ |
|
||||||
return _getInstance(this, options); |
|
||||||
}else{ |
|
||||||
return this.each(function(){ |
|
||||||
if( !$.data(this, 'plugin_' + pluginName) ){ |
|
||||||
_getInstance(this, options); |
|
||||||
} |
|
||||||
}); |
|
||||||
} |
|
||||||
}; |
|
||||||
|
|
||||||
})( jQuery, window, document ); |
|
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue