激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - js教程 - 如何使用原生Js實現(xiàn)隨機點名詳解

如何使用原生Js實現(xiàn)隨機點名詳解

2021-12-27 16:09CV_Di js教程

這篇文章主要給大家介紹了關(guān)于如何使用原生Js實現(xiàn)隨機點名的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

使用原生Js實現(xiàn)隨機點名

最近學(xué)了一點前端內(nèi)容,老師讓用js設(shè)計一個班里的隨機點名器。就嘗試寫了一個,具體實現(xiàn)效果如圖:

如何使用原生Js實現(xiàn)隨機點名詳解

實現(xiàn)代碼:

?
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>點名</title>
  <link href="../callTheRoll/bootstrap-3.3.7-dist/css/bootstrap.min.css" type="text/css" rel="stylesheet">
 
</head>
<style>
  div {
    float: left;
  }
  
  button {
    background-color: moccasin;
    margin: 30px;
    height: 50px;
    width: 150px;
    border: rgb(245, 165, 165) 1px solid;
    font-size: 18px;
  }
  
  .wai {
    margin-left: 200px;
    width: 1300px;
  }
  
  .name {
    height: 40px;
    width: 100px;
    margin: 4px;
    padding: 10px;
    font-size: 18px;
    background-color: mistyrose;
  }
</style>
 
<!-- onload : 事件會在頁面或圖像加載完成后立即發(fā)生。 -->
<body onload="A()">
  <div class="wai" align="center">
    <table>
      <button class="start" onclick="start()">開始</button>
      <button class="end" onclick="end()">結(jié)束</button>
    </table>
    <div id="names"></div>
  </div>
 
  <script type="text/javascript">
    var nameArr = [
      "空", "張家家", "許雪雪", "王橘橘", "陳韻", "馬本本", "張志志", "唐豪豪", "高洋洋", "朱陽陽", "王山山", "空",
      "尹方方", "王零零", "李遠(yuǎn)遠(yuǎn)", "吳杰", "李玉玉", "李雯雯", "步一一", "崔明明", "肖金金", "陳晴晴", "趙飛飛", "空",
      "李英英", "李洋陽", "劉俊郡", "王泊", "廉云云", "王子俊", "康三三", "李浩浩", "張藝藝", "徐葉葉", "李宏宏", "雷康康",
      "張青青", "王樂樂", "空", "楊童童", "張君君", "孫明", "何龍龍", "鄭軒軒", "任平平", "孫超超", "空", "賀濤濤",
      "空", "空", "空", "空", "熊秀秀", "薄嘉嘉", "薛萬萬", "尹飛", "張杰", "胡萬萬", "空", "馬文文"
    ];
    var index = 0;
    var k = 1; // 記錄不為空的座位
 
    // 生成作為表
    function A() {
      for (var i = 0; i < nameArr.length; i++) {
        if (nameArr[i].length > 1) {
          // 創(chuàng)建div標(biāo)簽(html元素)
          var div = document.createElement("div");
          div.setAttribute("class", "name");
          div.setAttribute("id", index++ + "");
          var text = document.createTextNode(nameArr[i]);
          div.appendChild(text);
          // 添加元素
          document.getElementById("names").appendChild(div);
 
          // 每排12人,所以每隔12,添加一個換行符
          if ((i + 1) % 12 == 0) {
            var br = document.createElement("br");
            document.getElementById("names").appendChild(br);
          }
          k++; // 添加一個學(xué)生,k自增1,記錄學(xué)生(不為空的座位)個數(shù)
        } else {
          var div = document.createElement("div");
          div.setAttribute("class", "name");
 
          // div.setAttribute("id", index++ + "");
          // 如果當(dāng)前元素長度小于等于1時,則代表當(dāng)前座位為空,所以不給當(dāng)前div添加id屬性,方便后續(xù)隨機選人時,避開空座位
 
          var text = document.createTextNode(nameArr[i]);
          div.appendChild(text);
          // 添加元素
          document.getElementById("names").appendChild(div);
          if ((i + 1) % 12 == 0) {
            var br = document.createElement("br");
            document.getElementById("names").appendChild(br);
          }
        }
 
      }
    }
 
    // 定義一個id標(biāo)志
    var index2 = -1;
 
    function restore() {
      // 還原顏色
      if (index2 != -1) {
        document.getElementById(index2 + "").style.cssText = "background: mistyrose";
      }
      // 生成隨機數(shù),用K生成隨機數(shù),此時K代表不為空的作為個數(shù)
      var num = Math.floor(Math.random() * k);
      document.getElementById(num + "").style.cssText = "background-color:red";
      index2 = num; // 記錄當(dāng)前被選中的id,在下次執(zhí)行該函數(shù)時,將顏色還原
    }
 
    var time; // 用于接收計時器,方便關(guān)計時器時操作
    var n = 1; // 定義狀態(tài)正在執(zhí)行 n=0 , 已經(jīng)結(jié)束 n=1
 
    function start() {
      if (n == 1) {
        // DOM setInterval()方法 計時器
        time = setInterval("restore()", 80);
        n = 0;
      }
    }
 
    function end() {
      if (n == 0) {
        clearInterval(time);
        alert("請" + document.getElementById(index2 + "").innerHTML + "同學(xué)回答問題");
        n = 1;
      }
    }
  </script>
</body>
 
</html>

在這里對計時器做一下介紹:

?
1
2
3
4
5
setInterval(code,millisec),這兩個參數(shù)都是必須的;
        第一個參數(shù)是要調(diào)用的函數(shù)或要執(zhí)行的代碼串。
        第二個參數(shù)是毫秒值,表示的是隔多久執(zhí)行一次code(參數(shù)一)。
clearInterval(id_of_setinterval),參數(shù)是必須的;
        這個參數(shù)表示setInterval返回的ID值,即在代碼中我設(shè)置的time

(本人是小白一個,所以寫的有什么問題也請各位指出,可以讓我及時改正,謝謝)

總結(jié)

到此這篇關(guān)于如何使用原生Js實現(xiàn)隨機點名的文章就介紹到這了,更多相關(guān)原生Js實現(xiàn)隨機點名內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/Li_Wendi/article/details/112238687

延伸 · 閱讀

精彩推薦
  • js教程利用JavaScript為句子加標(biāo)題的3種方法示例

    利用JavaScript為句子加標(biāo)題的3種方法示例

    這篇文章主要給大家介紹了關(guān)于如何利用JavaScript為句子加標(biāo)題的3種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)...

    Hunter網(wǎng)絡(luò)安全10152021-12-27
  • js教程JavaScript實現(xiàn)雪花飄落效果實例

    JavaScript實現(xiàn)雪花飄落效果實例

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)雪花飄落效果實例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    小蟲蟲~3682021-12-21
  • js教程javascript的事件描述

    javascript的事件描述

    本文主要為大家介紹javascript事件的基礎(chǔ)知識,有需要的朋友可以參考下...

    js教程網(wǎng)9362021-12-15
  • js教程js+for循環(huán)實現(xiàn)字符串自動轉(zhuǎn)義的代碼(把后面的字符替換前面的字符)

    js+for循環(huán)實現(xiàn)字符串自動轉(zhuǎn)義的代碼(把后面的字符替換前面的字

    這段代碼是從網(wǎng)上看到的一段不錯的代碼,用for命令實現(xiàn)字符串的轉(zhuǎn)移,而且使用的是for循環(huán)直接將后面的字符替換成前面的字符,這個邏輯以前沒試過...

    js教程網(wǎng)3992021-12-18
  • js教程mapboxgl實現(xiàn)帶箭頭軌跡線的代碼

    mapboxgl實現(xiàn)帶箭頭軌跡線的代碼

    這篇文章主要介紹了mapboxgl實現(xiàn)帶箭頭軌跡線的代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    GIS兵器庫9122021-12-27
  • js教程js實現(xiàn)鼠標(biāo)拖曳效果

    js實現(xiàn)鼠標(biāo)拖曳效果

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)鼠標(biāo)拖曳效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    等待的L先生8722021-12-22
  • js教程微信小程序視頻彈幕發(fā)送功能的實現(xiàn)

    微信小程序視頻彈幕發(fā)送功能的實現(xiàn)

    這篇文章主要介紹了微信小程序視頻彈幕發(fā)送功能的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的...

    保護(hù)我方豆豆4822021-12-21
  • js教程js實現(xiàn)移動端輪播圖滑動切換

    js實現(xiàn)移動端輪播圖滑動切換

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)移動端輪播圖滑動切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    浪漫前端11272021-12-15
主站蜘蛛池模板: 9999久久| videos真实高潮xxxx | 久久蜜桃精品一区二区三区综合网 | 在线中文字幕观看 | 国产高潮失禁喷水爽到抽搐视频 | 成年人在线视频 | 欧美xxxxx视频 | 成人宗合网 | 国产一区二区免费 | 私库av在线免费观看 | 色999国产 | 国产成人在线网站 | 91精品国产91久久久久久蜜臀 | 欧美精品一区二区性色 | 国产精品免费小视频 | 免费在线性爱视频 | mmmwww | 精品乱码久久久久 | 欧美一级特黄aaaaaaa什 | 天堂在线资源av | 羞羞漫画无遮挡观看 | 久久av免费观看 | 一级做受毛片免费大片 | 国产精品99久久99久久久二 | 久在线观看 | 羞羞的视频免费在线观看 | 久久久三级免费电影 | 91在线视频精品 | 国产一国产一级毛片视频 | 99精品视频在线免费观看 | 大尺度福利视频 | 精国品产一区二区三区有限公司 | 国产成人小视频在线观看 | 91久久另类重口变态 | 成人性视频免费网站下载软件 | 国产一区二区三区影视 | 精品国产一区二区三区在线 | 色99999| 99精品国产在热久久婷婷 | av手机在线免费播放 | 黄色片在线观看网站 |