现在代码排除不了数组中第一位和最后一位就是会显示0号和42号,实际选中的位置到不了应该被选中的位置,就是选中的位置和显示的图片不一样
var index=1, //当前亮区位置
prevIndex=41, //前一位置
Speed=300, //初始速度
Time, //定义对象
arr = [], //初始化数组
zjarr = [],
EndIndex=0, //决定在哪一格变慢
ptb, //获取tb对象
cycle=0, //转动圈数
EndCycle=0, //计算圈数
flag=false, //开始转动标志
quick=0, //加速
maxnum=41, // 最大开奖号码
btnplays;
/*
* 删除左右两端的空格
*/
function Trim(str){
return str.replace(/(^\s*)|(\s*$)/g, "");
}
/*
* 定义数组
*/
function GetSide(m,n){
//初始化数组
var arr = [];
for(var i=0;i<m;i++){
arr.push([]);
for(var j=0;j<n;j++){
arr[i][j]=i*n+j;
}
}
//获取数组最外圈
var resultArr=[];
var tempX=0,
tempY=0,
direction="Along",
count=0;
while(tempX>=0 && tempX<n && tempY>=0 && tempY<m && count<m*n)
{
count++;
resultArr.push([tempY,tempX]);
if(direction=="Along"){
if(tempX==n-1)
tempY++;
else
tempX++;
if(tempX==n-1&&tempY==m-1)
direction="Inverse";
}
else{
if(tempX==0)
tempY--;
else
tempX--;
if(tempX==0&&tempY==0)
break;
}
}
return resultArr;
}
function StartGame(){
ptb = document.getElementById("ptb");
btnplays = $("#btnplays");
$("#maxnumst").attr("disabled",true);
arr = GetSide(12,11);
clearInterval(Time);
cycle=0;
// flag=true;
EndIndex=Math.floor(Math.random()*16);
EndCycle=1;
btnplays.val("抽奖中...");
btnplays.attr("disabled",true);
Speed = 300;
Time = setInterval(Star,Speed);
}
//跑马灯变速
function Star(){
//走五格开始加速
if(quick==3){
clearInterval(Time);
Speed=20;
flag=true;
Time=setInterval(Star,Speed);
}
if(index>=arr.length){
index=0;
cycle++;
}
ptb.rows[arr[index][0]].cells[arr[index][1]].className="playcurr";
if(index>0){
prevIndex=index-1;
}else{
prevIndex=arr.length-1;
}
ptb.rows[arr[prevIndex][0]].cells[arr[prevIndex][1]].className="playnormal";
index++;
quick++;
}
var selectedIndex = ',';//记录已经抽中的下标
arr.splice(41,1);
//结束转动并选中号码
function choujiang() {
if (flag == false) {
return;
}
flag = false;
quick = 0;
cycle = 0;
clearInterval(Time);
btnplays.attr("disabled", false);
btnplays.val("开始抽奖");
if (selectedIndex.replace(/^,|,$/g, '').split(',').length >= arr.length) { alert('所有奖项已经抽了一遍~~~');return false}
//判断是否已经抽出过此下标
while(selectedIndex.indexOf(',' + index + ',') != -1) {//已抽中此下标则取下一个直到没抽中过的
index++;
if (index >= arr.length) index = 1;
}
selectedIndex += index + ',';//记录已经抽中的下标
var zjnum = index;
alert("恭喜 "+zjnum+"号中奖");
var imgpath = "image/" + zjnum + ".jpg"
$("#xingyun").attr("src", imgpath);
$("#yizj").append("<span>" + zjnum + ",</span>");
}
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
body{ padding-top:10px; background-image:url(image/bg2.jpg);}
恭祝大家,新年快乐!