抽奖--随机数组

简介: 抽奖--随机数组

效果展示



HTML


      <div id="circle">
        点击开始,开始抽奖
      </div>
      <button id="btn">开始</button>


JS


定义数组

var arr = ["iPhoneX", "平衡车","洗衣机","鞠婧祎","邓紫棋","抽纸一包","电吹风","行李箱","兰博基尼","一百万现金","遥控车","波音747","印度7日游","小爱同学","笔记本电脑","洗发水","泡面一箱","拼多多助力","女朋友一个","回到过去","香槟","一句话","一个拥抱","一个眼神","一支笔"];
  var result = document.getElementById("circle"); //结果展示
  var btn = document.getElementById("btn");  // 开始按钮
  var count = 0;  //点击次数


setInterval(),clearInterval()


setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数

btn.onclick = function() {
    count++; //每点击一次btn按钮,count自增一次
    if (count % 2 != 0) {
      btn.innerText = "暂停";  //点击次数为 奇数 时,按钮显示为暂停
      timer = setInterval(function() {
        var i = Math.round(Math.random() * (arr.length - 1)); //随机获取下标i,范围0 ~ arr.length-1
        result.innerText = arr[i]  //将随机选中的元素,输出到result上
      }, 1) //每 一毫秒 调用一次函数
      
    } else {
      clearInterval(timer);   //再次点击count自增加 1,执行else,停止timer的setInterval()
      btn.innerText = "开始";  //改变按钮显示为开始
    }
  }

setInterval()的应用


bug:加载过程中再点击按钮,会再调用函数,导致来回闪烁情况。

解决方案:暂无 2021/6/13


效果图


JS

function move() {
  var elem = document.getElementById("myBar");
  var hp = document.getElementsByTagName("h1")[0];
  var width = 0; 
  var id = setInterval(frame, 100); //每100毫秒执行一次frame函数
  function frame() {
    if (width == 100) { //当width为100时,停止 id
      clearInterval(id);
    } else {
      width++; 
      elem.style.width = width + '%'; //给elem元素添加css样式 宽度width
    hp.innerText = width+'%';   //将当前宽度输出到 hp 上
    } 
  }
}


源码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>进度条</title>
</head>
<style>
#myProgress {
  width: 100%;
  height: 30px;
  position: relative;
  background-color: #ddd;
}
#myBar {
  background-color: #4CAF50;
  width: 1px;
  height: 30px;
  position: absolute;
}
</style>
<body>
<h1>JavaScript 进度条</h1>
<div id="myProgress">
  <div id="myBar"></div>
</div>
<br>
<button onclick="move()">点我</button> 
<script>
function move() {
  var elem = document.getElementById("myBar");
  var hp = document.getElementsByTagName("h1")[0];
  var width = 0; 
  var id = setInterval(frame, 100); 
  function frame() {
    if (width == 100) {
      clearInterval(id);
    } else {
      width++; 
      elem.style.width = width + '%';
    hp.innerText = width+'%';   
    } 
  }
}
</script>
</body>
</html>
相关文章
|
5月前
24.定义一个整型变量,赋予1-100值。要求用户猜这个数,比较两数大小,把结果提示给用户,直到猜对为止
24.定义一个整型变量,赋予1-100值。要求用户猜这个数,比较两数大小,把结果提示给用户,直到猜对为止
36 1
页面弹窗猜随机数
页面弹窗猜随机数
|
5月前
dedecms会员登录默认增加两积分怎样去掉,怎么让会员登录不加积分?
dedecms会员登录就增加两积分怎样去掉,怎么让会员登录不加积分?
dedecms会员登录默认增加两积分怎样去掉,怎么让会员登录不加积分?
整数值比较判断登录系统用户
整数值比较判断登录系统用户
42 0
|
小程序
抽奖活动小程序之随机选取中奖用户功能实现
抽奖活动小程序之随机选取中奖用户功能实现
抽奖活动小程序之随机选取中奖用户功能实现
html简单随机抽奖页面(在线抽奖、随机选取、自动挑选)
html简单随机抽奖页面(在线抽奖、随机选取、自动挑选)
1882 0
html简单随机抽奖页面(在线抽奖、随机选取、自动挑选)
|
监控 Java Linux
使用SecureRandom产生随机数采坑记录
使用SecureRandom产生随机数采坑记录
|
Java 开发者
随机数组|学习笔记
快速学习随机数组
随机数组|学习笔记
|
索引
【分享】小程序购物车demo演示实例(全选与不全选、数量加减、价格汇总、删除提示)
 最近由于项目开发需要用到多选、单选、多个数量加减控制,就利用小程序做了个购物车demo,仅供参考。 要点: 加减商品数量(可自定义商品数量)、汇总价格、全选与全不选、删除商品弹窗提示 思路: 一、本地模拟Json数据格式的数组(1.购物车商品id:cid   2.标题title   3.图片地址   4.数量num   5.价格price   6.小计   7.是否选中selected) 二、点击复选框操作 如已经选中的,经点击变成未选中,反之而反之 点击依据index作为标识,而不用cid,方便遍历 三、全选操作 首次点击即为全部选中,再次点击为全不选。
13006 0
对不起,你拉来的根本就不是“种子用户”
对于草根产品来说,冷启动是非常头疼的事情,而其中最为关键的一环就是:获取种子用户。种子用户的重要性相信大家都懂,因此许多产品上线之后的第一件事就是:拉人,拉人,拉人。但往往最后疲于应付这群用户,到头来也没留下几颗会发芽的种子。那是因为,你拉来的根本就不是“种子用户”。
2441 0