为什么会做这个东西呢,纯属好玩,闲的
其实是在上次班会的时候想到的,班会的时候叫人回答问题,没人回答
当时就想,我如果抽签抽到你了,你还是不回答吗??好吧,一切都是扯淡
先来看看页面效果吧:

点击抽取就可以抽签了,红色框会显示内容,(PS:红色框是没有的,仅仅做描述)
抽取到的效果图如下,字体会随机滚动,最后停止:

里面的抽取内容完全可以替换,,,,
下面贴上代码:

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{margin: 0px;padding: 0px;}
li{list-style: none;}
body{
font-family: "楷体";
user-select:none;
background: url('1.jpg') no-repeat;
background-size: 100%;
/*background-color: red;*/
}
.section{
position: relative;
width:935px;
height: 460px;
background-color: rgba(0,0,0,.3);
margin:165px auto 0;
text-align: center;
}
.section h2{
height: 90px;
line-height: 90px;
font-size: 40px;
color:#fff;
}
.section .s-result{
height: 400px;
color: #fff;
}
.s-result .number{
float: left;
width: 895px;
height: 300px;
line-height: 300px;
margin-left: 20px;
font-size: 60px;
font-weight: bold;
}
.btn{
position:absolute;
left: 50%;
margin-left: -161px;
bottom: -40px;
width: 323px;
height: 81px;
border-radius: 30px;
background-color: #000;
cursor:pointer;
}
.btn p{
line-height: 81px;
font-size: 50px;
color: #fff;
}
</style>
</head>
<body>
<div class="section">
<h2>看看谁最幸运!!</h2>
<div class="s-result">
</div>
<div class="btn">
<p>点 击 抽 取</p>
</div>
</div>
<script>
var oBtn = document.getElementsByClassName('btn')[0];
var oResult = document.getElementsByClassName('s-result')[0];
var arrName = ['张三','李四','王五','赵六','李xx','杨xx','张xx','A_dmin']; //抽签的内容
var step = 1;
var cnt = 1;
var flag = true;
oBtn.onclick = function (){
if(flag){
step = 1;
creatName();
flag = false;
}else{
var d = document.getElementsByClassName('number')[0];
oResult.removeChild(d);
step = 1;
creatName();
}
}
function getName(){
var num = Math.floor(Math.random()*(arrName.length-1));
var n = arrName[num];
arrName.splice(num,1);
return n;
}
function creatName(){
if(step > cnt){
return null;
}
step++; var oDiv = document.createElement('div');
oDiv.className = 'number'; oResult.appendChild(oDiv); var dis = 1;
var maxDis = 30;
var mySet = setInterval(function(){
dis++;
if(dis > maxDis){
oDiv.innerHTML = getName();
clearInterval(mySet);
creatName();
return null;
}
oDiv.innerHTML = arrName[Math.floor(Math.random()*(arrName.length-1))];
},50);
}
</script>
</body>
</html>
 

PS:
有点小瑕疵,可点击多次,每次随机的结果都是不一样的,所以当内容抽取完之后,页面会显示undefined,不过影响不大,啊哈哈哈哈

HTML+JavaScript实现一个简单抽奖功能的更多相关文章

  1. javascript编写一个简单的编译器(理解抽象语法树AST)

    javascript编写一个简单的编译器(理解抽象语法树AST) 编译器 是一种接收一段代码,然后把它转成一些其他一种机制.我们现在来做一个在一张纸上画出一条线,那么我们画出一条线需要定义的条件如下: ...

  2. jquery实现简单抽奖功能

    一直纠结要怎么用jquery实现抽奖功能,看别人很多都是用flash制作的,找了很多资料,最终找到一个比较适合需求的,我做了些许调整,以下是代码展示(复制下来可以直接使用). 先上图:

  3. 使用JavaScript实现一个简单的编译器

    在前端开发中也会或多或少接触到一些与编译相关的内容,常见的有 将ES6.7代码编译成ES5的代码 将SCSS.LESS代码转换成浏览器支持的CSS代码 通过uglifyjs.uglifycss等工具压 ...

  4. 用JavaScript实现一个简单的树结构

    数据源用数组混json结构,实现了基本的功能.效率一般,跟 dhtree 梅花雪树对比了下,都差不多. (ps感觉比dhtree快点,跟梅花雪树差不多,个人测试) 这个实现树的原理是根据json,不断 ...

  5. 使用javascript完成一个简单工厂设计模式。

    在JS中创建对象会习惯的使用new关键字和类构造函数(也是可以用对象字面量). 工厂模式就是一种有助于消除两个类依赖性的模式. 工厂模式分为简单工厂模式和复杂工厂模式,这篇主要讲简单工厂模式. 简单工 ...

  6. 手摸手。完成一个H5 抽奖功能

    要完成一个这样的抽奖功能 构思 奖励物品是通过接口获取的(img) 奖励结果是通过接口获取的(id) 抽奖的动画需要由慢到快再到慢 抽奖转动时间不能太短 抽奖结束需要回调 业务代码和功能代码要分离 先 ...

  7. 用JavaScript写一个简单的计算器

    本文使用js实现了一个简单的加.减.乘.除计算器. 以下是css部分代码: *{ padding:0; margin:0; color: #424242; } .outer{ width:300px; ...

  8. JavaScript实现一个简单的密码输入功能

    常见的密码输入框当输入字符后会被替换成‘*’,而且旁边会有个小眼睛可以查看原本的字符,虽然input标签有这个功能,但这只是自己正在看正则表达式的时候突然想到的,就当做个练习,自己手动实现下: < ...

  9. JavaScript 实现一个简单的MVVM前端框架(ES6语法)

    前言 随着前端各大框架的崛起,为我们平时的开发带来了相当的便利,我们不能一直停留在应用层面,今天就自己动手实现一个乞丐版的MVVM小框架 完整代码github地址 效果 html代码 <div ...

随机推荐

  1. 查杀进程小工具——WPF和MVVM初体验

    最近因为工作需要,研究了一下桌面应用程序.在winform.WPF.Electron等几种技术里,最终选择了WPF作为最后的选型.WPF最吸引我的地方,就是MVVM模式了.MVVM模式完全把界面和业务 ...

  2. 设计完美windbg断点

    说到现场调试,断点是最重要的.通常,在生产环境中解决一个非常复杂的问题需要在本地.非生产环境中调试我自己的一台测试机器.我通常会调试有问题的进程或代码,以便更好地了解它是如何工作的,以及在我进入时需要 ...

  3. 初探电波钟(A Brief Introduction Of Radio Controlled Clock AND Its Appliciations)

    文档标识符:Radio_Controlled_Clock_T-D-P11 作者:DLHC 最后修改日期:2020.10.12 本文链接:https://www.cnblogs.com/DLHC-TEC ...

  4. 多测师讲解接口测试__mock___高级讲师肖sir

    一.关于Mock测试 1.什么是Mock测试?mock测试,源自于英文单词fake,意为假的测试实际工作中用于模拟那些无法实时连接的后端,或是没有开发出来的后端,用于获得结果反馈的一种测试方式.通过发 ...

  5. Java9系列第三篇-同一个Jar支持多JDK版本运行

    我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注.期待您能关注我,我将把java 9 ...

  6. 移动吉比特H2-2光猫超级用户与密码

    移动吉比特H2-2光猫超级用户与密码 超级用户名CMCCAdmin 密码aDm8H%MdA----------------版权声明:本文为CSDN博主「BenSon.Album」的原创文章,遵循CC ...

  7. 【CodeForces】835F Roads in the Kingdom

    一.题目 题目描述 王国有\(n\)座城市与\(n\)条有长度的街道,保证所有城市直接或间接联通,我们定义王国的直径为所有点对最短距离中的最大值,现因财政危机需拆除一条道路并同时要求所有城市仍然联通, ...

  8. 51nod 最大M子段和系列(1052、1053、1115)

    51nod1052 数据量小,可使用O(N*M)的DPAC,递推公式: dp[i][j]=max(dp[i-1][j-1], dp[i][j-1])+a[j]; dp[i][j]表示前j个数取 i 段 ...

  9. JS 计算日期相减得天数

    言简意赅不呼哨直接懂,可以封装的可以根据自己的需求封装一下 var date1="2020-10-23";var date2="2020-10-26";var ...

  10. 联赛模拟测试22 B. 分组配对 倍增+二分

    题目描述 分析 首先,容易发现一个小组内的最优配对方式(能得到最大综合实力的方式) 一定是实力值最大的男生和最大的女生配对,次大的和次大的配对,以此类推. 但是每次新插入一个值时,需要用 \(nlog ...