首頁 > web前端 > js教程 > JS做出隨機抽獎系統

JS做出隨機抽獎系統

php中世界最好的语言
發布: 2018-04-13 13:53:11
原創
3383 人瀏覽過

這次帶給大家JS做出隨機抽獎系統,JS做出隨機抽獎系統的注意事項有哪些,下面就是實戰案例,一起來看一下。

用JavaScript實作一個簡單的抽獎系統,有【開始】按鈕和【停止】按鈕。

功能:

- 點開始按鈕開始抽獎,隨機出現獎品名稱;
- 點停止按鈕即可停止抽獎;
- 按下回車鍵可切換開始抽獎和停止抽獎。

效果

html代碼:

建立html結構,最基礎的要包含顯示的獎品名稱和開始、停止按鈕。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<!doctype html>

<html>

<head>

  <title>抽奖系统</title>

  <meta charset="utf-8">

  <link type="text/css" rel="stylesheet" href="css/style.css">

  <script type="text/javascript" src="js/script.js"></script>

</head>

<body>

  <p id="title" class="title">开始抽奖啦!</p>

  <p class="btns">

    <span id="play">开 始</span>

    <span id="stop">停 止</span>

  </p>

</body>

</html>

登入後複製

js主要程式碼片段:

首先,定義data數組,寫入各獎品名稱。並初始化timer定時器,和鍵盤事件狀態flag(一開始狀態為0,按下鍵盤變成1,再按鍵盤變成0,如此切換).

1

2

3

var data=['Phone7','Ipad','三星笔记本','佳能相机','惠普打印机','谢谢参与','100元充值卡','1000元超市购物券'];

  timer = null,

  flag = 0;

登入後複製

定義開始抽獎函數playFun();

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

function playFun() {

  var title = document.getElementById('title');

  var play = document.getElementById('play');

  //每次都先清除上一次的定时器任务,避免抽奖效果累加频率会越来越快

  clearInterval(timer);

  //定时器50毫秒触发一次

  timer = setInterval(function(){

    //获取奖品下标随机数

    var random = Math.floor(Math.random() * data.length);

    //显示随机的奖品名称

    title.innerHTML = data[random];

  }, 50);

  //改变将开始按钮背景色

  play.style.background = '#666';

}

登入後複製

定義停止抽獎函數stopFun();

1

2

3

4

5

6

7

function stopFun(){

  //清除定时器即可结束抽奖

  clearInterval(timer);

  var play = document.getElementById('play');

  //改变将停止按钮背景色

  play.style.background = '#036';

}

登入後複製

按回車鍵切換抽獎狀態事件;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

document.onkeyup = function(event){

  event = event || window.event;

  //回车键键码为13

  if (event.keyCode == 13) {

    //如果状态flag值为0则开始抽奖,并把状态值改为1,否则停止抽奖并把状态值改为0

    if (flag == 0){

      playFun();

      flag = 1;

    }else{

      stopFun();

      flag = 0;

    }

  }

}

登入後複製

js完整程式碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

var data = ['Phone7''Ipad''三星笔记本''佳能相机''惠普打印机''谢谢参与''100元充值卡''1000元超市购物券'],

  timer = null, //定时器

  flag = 0; //用于键盘事件状态标记

window.onload = function() {

  var play = document.getElementById('play'),

    stop = document.getElementById('stop');

  // 开始抽奖

  play.onclick = playFun;

  stop.onclick = stopFun;

  // 键盘事件

  document.onkeyup = function(event) {

    event = event || window.event;

    if (event.keyCode == 13) {

      if (flag == 0) {

        playFun();

        flag = 1;

      else {

        stopFun();

        flag = 0;

      }

    }

  }

}

// 开始抽奖

function playFun() {

  var title = document.getElementById('title');

  var play = document.getElementById('play');

  //每次都先清除上一次的定时器任务,避免抽奖效果累加频率会越来越快

  clearInterval(timer);

  timer = setInterval(function() {

    var random = Math.floor(Math.random() * data.length);

    title.innerHTML = data[random];

  }, 50);

  play.style.background = '#999';

}

//停止抽奖

function stopFun() {

  clearInterval(timer);

  var play = document.getElementById('play');

  play.style.background = '#036';

}

登入後複製

css樣式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

* {

  margin: 0;

  padding: 0;

}

.title {

  font-size: 24px;

  font-weight: bold;

  width: 400px;

  height: 70px;

  margin: 0 auto;

  padding-top: 30px;

  text-align: center;

  color: #f00;

}

.btns {

  width: 190px;

  height: 30px;

  margin: 0 auto;

}

.btns span {

  font-family: '微软雅黑';

  font-size: 14px;

  line-height: 27px;

  display: block;

  float: left;

  width: 80px;

  height: 27px;

  margin-right: 10px;

  cursor: pointer;

  text-align: center;

  color: #fff;

  border: 1px solid #eee;

  border-radius: 7px;

  background: #036;

}

登入後複製

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

Swiper實作行動裝置廣告圖片輪播

Vue元件通訊Bus使用方法

#

以上是JS做出隨機抽獎系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板