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