JS實(shí)現(xiàn)簡單的九宮格抽獎(jiǎng)
本文實(shí)例為大家分享了JS實(shí)現(xiàn)簡單九宮格抽獎(jiǎng)的具體代碼,供大家參考,具體內(nèi)容如下
結(jié)構(gòu)
<body> ? ? <div id="fa"> ? ? ? ? <div class="option">1</div> ? ? ? ? <div class="option">5</div> ? ? ? ? <div class="option">3</div> ? ? ? ? <div class="option">4</div> ? ? ? ? <div id="start">開始抽獎(jiǎng)</div> ? ? ? ? <div class="option">5</div> ? ? ? ? <div class="option">6</div> ? ? ? ? <div class="option">7</div> ? ? ? ? <div class="option">8</div> ? ? </div> </body>
樣式
<style> ? ? ? ? #fa { ? ? ? ? ? ? width: 600px; ? ? ? ? ? ? height: 600px; ? ? ? ? ? ? border: 1px solid red; ? ? ? ? } ? ? ? ? #fa>div { ? ? ? ? ? ? width: 33%; ? ? ? ? ? ? height: 33%; ? ? ? ? ? ? border: 1px solid red; ? ? ? ? ? ? float: left; ? ? ? ? ? ? line-height: 200px; ? ? ? ? ? ? text-align: center;//文本居中 ? ? ? ? ? ? font-size: 40px; ? ? ? ? ? ? font-weight: 800;//加粗字體 ? ? ? ? } ? ? ? ? #start { ? ? ? ? ? ? cursor: pointer;//使鼠標(biāo)移入時(shí)出現(xiàn)小手圖標(biāo) ? ? ? ? ? ? background-color: pink; ? ? ? ? } </style>
JS實(shí)現(xiàn)抽獎(jiǎng)
邏輯分析:
1.點(diǎn)擊中間的開始抽獎(jiǎng)時(shí)觸發(fā)一個(gè)定時(shí)器
2.觸發(fā)定時(shí)器后,隨機(jī)生成一個(gè)數(shù)字,通過這個(gè)數(shù)字來獲取當(dāng)前所在元素
3.設(shè)置一個(gè)時(shí)間來結(jié)束定時(shí)器,結(jié)束抽獎(jiǎng)
<script> ? ? ??? ?let btn = document.getElementById('start');//獲取到開始抽獎(jiǎng)按鈕 ? ? ? ? let options = document.getElementsByClassName('option');//獲取到8個(gè)獎(jiǎng)區(qū) ? ? ? ? let timer =null;//防止定時(shí)器多次觸發(fā),初始值設(shè)為null ?? ??? ?//為btn綁定一個(gè)單擊事件 ? ? ? ? btn.onclick = function () { ? ? ? ? ? ? //設(shè)置一個(gè)初始值 作為時(shí)間判斷 ? ? ? ? ? ? let num = 0; ? ? ? ? ? ?? ? ? ? ? ? ? if (timer == null) { ? ? ? ? ? ? ? ? //觸發(fā)一個(gè)定時(shí)器 ? ? ? ? ? ? ? ?timer = setInterval(function () { ? ? ? ? ? ? ? ? ? ? num++; ??? ??? ??? ??? ??? ?//隨機(jī)產(chǎn)生一個(gè)0 - 7 的數(shù)字 通過該數(shù)字作為數(shù)組的下標(biāo)來獲取到div ? ? ? ? ? ? ? ? ? ? let ran = Math.round(Math.random() * (7 - 0) + 0); ? ? ? ? ? ? ? ? ? ? //round是因?yàn)镸ath.random() * (7 - 0) + 0)取出的隨機(jī)數(shù)是含小數(shù)的一串?dāng)?shù)字,所以需要取整 ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? //改變選中的元素背景顏色之前,將所有元素的背景顏色恢復(fù) ? ? ? ? ? ? ? ? ? ? for (let i = 0; i < options.length; i++) { ? ? ? ? ? ? ? ? ? ? ? ? options[i].style.backgroundColor = ''; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? //給選中的元素設(shè)置一個(gè)背景顏色 ? ? ? ? ? ? ? ? ? ? options[ran].style.backgroundColor = 'tomato'; ? ? ? ? ? ? ? ? ? ? //給定時(shí)器一個(gè)時(shí)間,到時(shí)間停止定時(shí)器 ? ? ? ? ? ? ? ? ? ? if(num == 5){ ? ? ? ? ? ? ? ? ? ? ? ? clearInterval(timer) ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? }, 1000) ? ? ? ? ? ? } ? ? ? ? } </script>
效果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
velocity.js實(shí)現(xiàn)頁面滾動(dòng)切換效果
這篇文章主要介紹了velocity.js實(shí)現(xiàn)頁面滾動(dòng)切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10javascript筆試題目附答案@20081025_jb51.net
網(wǎng)上找的javascript筆試題目,留檔給自己作參考。2008-10-10js 按照指定間隔 向字符串中插入隨機(jī)字符串的實(shí)現(xiàn)代碼
看到論壇有人問,覺得有意思,就試著寫了一下。2010-03-03js給onclick事件賦值,動(dòng)態(tài)傳參數(shù)實(shí)例解說
js動(dòng)態(tài)給對象onclick事件賦值,動(dòng)態(tài)傳參數(shù)舉兩個(gè)例子一對一錯(cuò),感興趣的朋友可以對比下,希望可以從中發(fā)現(xiàn)不一樣之處2013-03-03JavaScript中window.showModalDialog()用法詳解
這篇文章主要介紹了JavaScript中window.showModalDialog()用法詳解,需要的朋友可以參考下2014-12-12bootstrapValidator.min.js表單驗(yàn)證插件
這篇文章主要為大家詳細(xì)介紹了bootstrapValidator.min.js表單驗(yàn)證插件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02javascript實(shí)現(xiàn)滑動(dòng)解鎖功能
本篇文章主要介紹了javascript實(shí)現(xiàn)滑動(dòng)解鎖功能的方法實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-03-03JS 中可以提升幸福度的小技巧(可以識(shí)別更多另類寫法)
本文主要介紹一些JS中用到的小技巧,可以在日常Coding中提升幸福度,將不定期更新2018-07-07