案例介绍

欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!
我们来用JavaScript编程实战案例,做一个大转盘。当你难以抉择的时候不妨用这个案例来帮你做选择。通过编程实战我们可以学到按钮的点击事件onclick()以及定时器的使用.

案例演示

每个选择都展示在不同的盒子里,通过点击中间的开始选择按钮,系统就会在5s内自动为您做出选择。

源码学习

进入核心代码学习,我们先来看HTML中的核心代码。

<!-- 有个小院-兴趣编程 -->
<div class=big>
<div class="option">大盘鸡</div>
<div class="option">麻辣香锅</div>
<div class="option">酸辣粉</div>
<div class="option">兰州拉面</div>
<div id="start">开始选择</div>
<div class="option">疙瘩汤</div>
<div class="option">鱼香肉丝</div>
<div class="option">麻辣烫</div>
<div class="option">咸菜</div>
</div>

然后再让我们来看CSS核心代码,CSS代码主要是对盒子的大小等进行布局。

.big{
width: 600px;
height: 600px;
border: 1px solid red;
}
.big>div{
width:33%;
height: 33%;
border: 1px solid red;
float: left;
line-height: 200px;
text-align: center;
font-size: 30px;
font-weight: bold;
}
#start{
cursor: pointer;
background-color: rgb(160, 110, 119);
}

接下来进行核心的JavaScript代码编写,首先根据id和className获取对象。通过onclick设置中间按钮的点击事件,触发一个定时器setInterval()。然后通过random获取0-7的随机数作为索引,并据此将其索引对应的盒子设为选中的目标,设置选中的背景颜色。利用for循环取消之前盒子的选定,设置时间点timer用于停止定时器。

//有个小院-兴趣编程
let but=document.getElementById("start");
let options=document.getElementsByClassName("option");
let timer=null;
but.onclick=function(){
let num=0;
if(timer==null){
timer=setInterval(()=>{
num++;
let ran= Math.round(Math.random()*(7-0)+0);
for(let i=0;i<options.length;i++){
options[i].style.backgroundColor='white';
}
options[ran].style.backgroundColor='orange';
if(num>=50){
clearInterval(timer);
timer=null;
}
},100);
}
}

记得关注我,每天学习一点点

你觉得大转盘还能用在什么地方?

全网可搜:小院里的霍大侠, 免费获取简单易懂的实战编程案例。编程/就业/副业/创业/资源。
私微信:huodaxia_xfeater
二维码: http://www.yougexiaoyuan.com/images/weixin_huodaxia.jpg
公众号:有个小院(微信公众号:yougexiaoyuan)
github:yougexiaoyuan (视频源码免费获取)
(部分素材来源于互联网,如有保护请联系作者)

教你用JavaScript获取大转盘的更多相关文章

  1. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断

    C#保留2位小数几种场景总结   场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.2 ...

  2. php 大转盘抽奖

    包在文件中 lottery.zip <!DOCTYPE HTML><html><head><meta charset="utf-8"> ...

  3. 抽奖大转盘 js代码

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. PHP幸运大转盘源码,支持ThinkPHP

    原理 先看图 可以看到1-6等奖都只有1个 ,7等奖有6个.指针默认指向上图位置,记为0°. 每个奖项对应不同的角度,圆的角度为360°,分成12块,所以每块为30°. 为了防止指针指着相邻两个将向之 ...

  5. 【Vue.js游戏机实战】- Vue.js实现大转盘抽奖总结

    大家好!先上图看看本次案例的整体效果. 实现思路: Vue component实现大转盘组件,可以嵌套到任意要使用的页面. css3 transform控制大转盘抽奖过程的动画效果. 抽奖组件内使用钩 ...

  6. php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法

    php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法.用法很简单,代码里有详细注释说明,一看就懂 <?php /* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为: ...

  7. jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现

    jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现 在线实例 查看演示 完整代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...

  8. jquery——九宫格大转盘抽奖

    一.用到的图片 二.代码如下,重点是js部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Con ...

  9. 用c#开发微信 (15) 微活动 1 大转盘

    微信营销是一种新型的营销模式,由于微信更重视用户之间的互动,故而这种营销推广不不能盲目地套用微博营销的单纯大量广告推送方式.这种方式在微信营销中的效果非常差,会令用户反感,继而取消去企业或商家的微信公 ...

  10. 纯CSS3大转盘抽奖(响应式、可配置)

    源于前段时候微信小程序最初火爆公测时段,把以前用 Canvas 实现的大转盘抽奖移植成微信小程序,无奈当时小程序对 Canvas 支持不够完善,只好降低用 CSS3 实现.虽然比不上 Canvas 绘 ...

随机推荐

  1. 2.5D 组态案例合集 | 智慧园区、数据中心、SMT 生产线、汽车制造

    在阅读文章之前,大家可以思考下 2.5D 设计属于哪种界定? 2.5D 是通过二维的元素来呈现出三维的效果.其实在国外并没有 2.5D 这样的称呼,标准说法是 Isometric 风格,翻译过来就是等 ...

  2. 基于 SpringBoot + Vue3.2 + Element Plus 的后台管理系统

    简介 TANSCI 基于 SpringBoot + Vue3.2 + Element Plus 的后台管理系统. 包含基础模块:菜单管理.角色管理.组织管理.用户管理.字典管理.日志管理(操作日志.异 ...

  3. 《IT项目管理知识》出书了,特点:全是干货

    大纲目录,及内容如下.本书属于付费内容

  4. java进阶(27)--HashSet与TreeSet

    一.HashSet: 1.特点:无序不可重复,实际上为放入HashMap中的key部分. 2.举例说明:

  5. Java之利用openCsv将csv文件导入mysql数据库

    前两天干活儿的时候有个需求,前台导入csv文件,后台要做接收处理,mysql数据库中,项目用的springboot+Vue+mybatisPlus实现,下面详细记录一下实现流程. 1.Controll ...

  6. [转帖]技术分享 | MySQL:一文弄懂时区&time_zone

    https://opensource.actionsky.com/20211214-time_zone/   作者:胡呈清 爱可生 DBA 团队成员,擅长故障分析.性能优化,个人博客:https:// ...

  7. [转帖]记druid 连接池没满,但超时问题 GetConnectionTimeoutException active 5, maxActive 100

    记druid 连接池没满,但超时问题 GetConnectionTimeoutException active 5, maxActive 100 问题说明 线上服务突然出现报错,通过日志查找发现是因为 ...

  8. [转帖]tikv性能参数调优

    https://www.cnblogs.com/FengGeBlog/p/10278368.html#:~:text=max-%20bytes%20-for-level-%20base%20%3D%2 ...

  9. [转帖]《Linux性能优化实战》笔记(十五)—— 磁盘IO的工作原理

    前一篇介绍了文件系统的工作原理,这一篇来看看磁盘IO的工作原理 一. 磁盘 1. 按存储介质分类 磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械磁盘和固态磁盘. 机械磁盘, ...

  10. [转帖]HTTP2 Sampler for JMeter

    https://www.cnblogs.com/a00ium/p/10462572.html 今天开发大大说能不能帮忙压一下HTTP2的链接,便去查了一下相关的东西. HTTP 2.0 的出现,相比于 ...