雙色球呢,它是我們買彩票時見得那種隨機抽取的幾位幸運數字,所以今天我用代碼的形式給大家簡單講解一下雙色球的大體思路,
首先呢先獲取內容和兩個按鈕,然后再封裝函數獲取隨機數并給他去重,就是把里面相同的數字去掉,然后封裝函數給獲取的七位隨機數寫到頁面上,最后呢再給開始結束按鈕一個點擊事件,里面再利用定時器,這個定時器呢,他有個毛病就是會重疊,每點一下就會加速,所以我們要給他來個禁用,結束的時候就把定時器清除掉,禁用也要給他解除;
具體代碼如下:
<body>
<div id="content"></div>
<button id="start">開始</button>
<button id="end">結束</button>
</body>
//獲取
function getname(name) {
return document.getElementById(name);
}
var content = getname('content');
var start = getname('start');
var end = getname('end');
//封裝函數獲取隨機數,然后給他去重
function get(start_num, end_num, many) {
var newarr = [];//聲明一個空數組,讓他接收
while (newarr.length < many) {
var num = Math.floor(Math.random() * (end_num - start_num + 1) + start_num);//利用公式獲取隨機數
num = num < 10 ? '0' + num : num;//三目運算符;如果他的隨機數里面有小于0的,就在她前面加個0,否則就是它本身;
if (newarr.indexOf(num) == -1) {//去重
newarr.push(num);
}
}
newarr.sort(function (a, b) {//排序
return a - b;
})
return newarr;
}
//封裝隨機數寫入頁面
function gethtml() {
var str = '';
var redball = get(1, 33, 6);
var balls = redball.concat(get(1, 16, 1));
// console.log(balls);
for (var i in balls) {
str += `<span>${balls[i]}</span>`;
}
content.innerHTML = str;
}
gethtml()//調用
//給開始 結束按鈕設點擊事件
var timer = null;//函數調用
start.onclick = function () {//開始設置點擊事件
timer = setInterval(gethtml, 10);//空的時間名給他賦一個定時器
start.disabled = true;//定時器會重疊,越點越快,所以要給他禁用
}
end.onclick=function(){//結束點擊事件
clearInterval(timer);//結束了所以要清除定時器
start.disabled=false;//false解除禁用
}