js實(shí)現(xiàn)簡(jiǎn)單擲骰子效果
本案例要實(shí)現(xiàn)的擲骰子效果:
點(diǎn)擊按鈕,使骰子轉(zhuǎn)動(dòng)起來,轉(zhuǎn)動(dòng)隨機(jī)時(shí)間之后,自動(dòng)停止在某一個(gè)點(diǎn)數(shù)上。
思路:
點(diǎn)擊按鈕之后,將原本靜態(tài)的骰子圖片替換為一個(gè)動(dòng)態(tài)轉(zhuǎn)動(dòng)的gif圖片;
創(chuàng)建定時(shí)器,實(shí)現(xiàn)隨機(jī)時(shí)間之后,動(dòng)態(tài)的圖片隨機(jī)替換為1~6點(diǎn)圖片的任意一張圖片。
注意:
1、要考慮用戶點(diǎn)擊一次按鈕后再連續(xù)多次點(diǎn)擊按鈕的情況。
2、為了防止不必要的問題,需要設(shè)置使定時(shí)器執(zhí)行完畢一次之后,再點(diǎn)擊按鈕才有效。
3、這里設(shè)置了一個(gè)開關(guān):
用戶點(diǎn)擊按鈕時(shí),先判斷開關(guān)是否關(guān)閉,如未關(guān)閉,可執(zhí)行函數(shù)內(nèi)容;
若開關(guān)已關(guān)閉,則不執(zhí)行函數(shù)體,即沒有任何效果。
css部分
*{margin:0; padding:0} #container{padding:10px;width:200px;margin:auto;height:200px;border:orange solid 1px; border-radius:8px;} #dice{width:200px;height:200px;} #command{margin:auto;width:100px;} #command input{width:100px;height:30px;border:#ccc solid 1px;border-radius:8px;}
html部分
<div id="container"> <img src="img/dice_1.png" id="dice" alt=""> </div> <div id="command"> <input type="button" onclick="shake();" value="搖一搖"> </div>
js部分
// 封裝函數(shù),便于通過id獲取元素 function $(id) { return document.getElementById(id); } // 生成隨機(jī)數(shù) function rand(min,max){ if (min>max) { var mid = min; min = max; max = mid; } //65<=Math.random()*26+65<26+65 return parseInt(Math.random()*(max-min+1)+min); } //創(chuàng)建一個(gè)開關(guān),默認(rèn)為true(打開狀態(tài)) var oPlay = true; //點(diǎn)擊事件 function shake() { if(oPlay){ //判斷開關(guān)的狀態(tài),若為true,執(zhí)行下邊的內(nèi)容 oPlay = false; //開始執(zhí)行后,關(guān)閉開關(guān) $("dice").src = "img/diceDynamic.gif"; //將靜態(tài)圖替換為動(dòng)圖 //隨機(jī)時(shí)間后,將動(dòng)態(tài)圖替換為隨機(jī)點(diǎn)數(shù)的圖片 var timer = setTimeout(function(){ $("dice").src = "img/dice_" + rand(1,6) + ".png"; oPlay = true; //執(zhí)行完畢后,再打開開關(guān) },rand(500,3000)); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
讓Firefox支持event對(duì)象實(shí)現(xiàn)代碼
FireFox并沒有 window.event ,所以在FireFox下編寫事件處理函數(shù)是很麻煩的事。如果要得到 event 對(duì)象,就必須要聲明時(shí)間處理函數(shù)的第一個(gè)參數(shù)為event2009-11-11微信小程序中的video視頻實(shí)現(xiàn) 自定義播放按鈕、封面圖、視頻封面上文案
這篇文章主要介紹了微信小程序中的video視頻實(shí)現(xiàn) 自定義播放按鈕、封面圖、視頻封面上文案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01javascript中RegExp保留小數(shù)點(diǎn)后幾位數(shù)的方法分享
文章介紹一篇關(guān)于javascript中RegExp保留小數(shù)點(diǎn)后幾位數(shù)方法,有需要了解的朋友可以參考一下2013-08-08HTML中setCapture、releaseCapture 使用方法淺析
本文給大家簡(jiǎn)單介紹了下html中的高級(jí)拖動(dòng)技術(shù)setCapture、releaseCapture的使用方法,有需要的小伙伴可以參考下2016-09-09基于layer.js實(shí)現(xiàn)收貨地址彈框選擇然后返回相應(yīng)的地址信息
這篇文章主要介紹了基于layer.js實(shí)現(xiàn)收貨地址彈框選擇然后返回相應(yīng)的地址信息,需要的朋友可以參考下2017-05-05