JavaScript實(shí)現(xiàn)九宮格抽獎(jiǎng)功能的示例代碼
效果圖
話不多說(shuō),直接上效果:
實(shí)現(xiàn)流程
主要流程為:
1. 根據(jù)效果圖,構(gòu)建靜態(tài)頁(yè)面
2. 獲取元素(自帶的屬性)
3. 綁定事件
4. 事件觸發(fā)之后
4.1 所有的li元素 在指定的時(shí)間間隔下 顏色隨機(jī)變化
4.2 延時(shí)器 2秒后 清除定時(shí)器
4.3 在清除定時(shí)器之后,所有的li背景色復(fù)位,隨機(jī)選一個(gè)
主要代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>抽獎(jiǎng)</title> <style> * { margin: 0; padding: 0; list-style: none; } #box { width: 240px; margin: 30px auto; border: 1px solid #ccc; } ul li { width: 60px; height: 60px; line-height: 30px; text-align: center; margin: 10px; float: left; background-color: orange; color: white; } /* 清浮動(dòng) */ ul:after { content: ""; display: block; clear: both; } p { margin: 20px auto; text-align: center; } .btn { width: 100px; height: 40px; line-height: 40px; text-align: center; border: none; background-color: skyblue; } </style> </head> <body> <div id="box"> <ul> <li>禮品1</li> <li>禮品2</li> <li>禮品3</li> <li>禮品4</li> <li>禮品5</li> <li>禮品6</li> <li>禮品7</li> <li>禮品8</li> <li>禮品9</li> </ul> <p><button onclick="alert(123)" title="按鈕">開(kāi)始抽獎(jiǎng)</button></p> </div> </body> <script> var btn = document.getElementsByTagName("button")[0]; btn.className = "btn"; // 通過(guò)標(biāo)簽名 獲取元素 var lis = document.getElementsByTagName("li"); // 為元素綁定單擊事件 btn.onclick = function () { // 禁用按鈕 btn.disabled = true; var timer = setInterval(function () { for (var i = 0; i < lis.length; i++) { lis[i].style.backgroundColor = getColor(); } }, 100); // 使用延時(shí)器 清除定時(shí)器 setTimeout(function (){ clearInterval(timer) for (var i = 0; i < lis.length; i++) { lis[i].style.backgroundColor = "orange" } var index = Math.floor( Math.random() * lis.length ) lis[index].style.backgroundColor = "red"; // 啟用按鈕 btn.disabled = false; }, 2000) } // 隨機(jī)顏色的函數(shù) function getColor() { return "#" + Math.random().toString(16).substr(2, 6); } </script> </html>
以上就是JavaScript實(shí)現(xiàn)九宮格抽獎(jiǎng)功能的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于JavaScript九宮格抽獎(jiǎng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript獲取IP獲取的是IPV6 如何校驗(yàn)
項(xiàng)目中遇到了關(guān)于IPV6的一些問(wèn)題,特意做一個(gè)專輯說(shuō)明一下,希望能夠幫助有需要的同學(xué)!2016-06-06關(guān)于javascript DOM事件模型的兩件事
DOM事件模型的兩件事:事件捕捉(Event Capture)的實(shí)現(xiàn)問(wèn)題以及IE的高級(jí)事件處理模型的問(wèn)題。2010-07-07javascript實(shí)現(xiàn)html頁(yè)面之間參數(shù)傳遞的四種方法實(shí)例分析
這篇文章主要介紹了javascript實(shí)現(xiàn)html頁(yè)面之間參數(shù)傳遞的四種方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了JavaScript實(shí)現(xiàn)頁(yè)面之間參數(shù)傳遞的常用技巧,需要的朋友可以參考下2015-12-12js通過(guò)audioContext實(shí)現(xiàn)3D音效
這篇文章主要為大家詳細(xì)介紹了js通過(guò)audioContext實(shí)現(xiàn)3D音效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04layui 富文本圖片上傳接口與普通按鈕 文件上傳接口的例子
今天小編就為大家分享一篇layui 富文本圖片上傳接口與普通按鈕 文件上傳接口的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JS實(shí)現(xiàn)距離上次刷新已過(guò)多少秒示例
這篇文章主要介紹了JS如何實(shí)現(xiàn)距離上次刷新已過(guò)多少秒,需要的朋友可以參考下2014-05-05