简易抽奖网页

news/2024/11/24 2:06:31/

简易抽奖网页需要完成以下几个功能:

        * 1.简单的网页界面设计
        * 2.回车开始抽取再次回车暂停

        * 3.三次抽取后结束

* 4.ESC键重新抽取

界面设计部分不赘述

实现思想(JavaScripts部分):

1. 设计一个数组存放被抽取人员的名字,每抽取一次就从数组中remove掉这个人。三次后结束

2. 设置全局按键监听document.onkeydown,然后利用switch给定参数e.keyCode来区分当前按的回车还是ESC。

3. 设置一个boolean型全局变量isBegin ,给定初值false,来判定当前是否处于滚动状态。为false表示此次操作为停止滚动获得幸运儿,为true则为开始滚动。

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style>* {margin: 0;padding: 0;}body{background-color: #3F51B5;}.aside-left {position: absolute;left: 0;padding: 10px;}ol {margin-left: 20px;}ol li {padding: 10px 10px;font: italic 12pt "myfont";}h2 {text-align: center;}.aside-right {float: right;margin-right: 30px;}.container {position: absolute;left: 50%;margin-left: -512px;width: 1024px;height: 614px;background: url(img/bg.jpg) no-repeat;}.title {position: absolute;left: 0;right: 0;top: 2em;font: bold 3em "楷体";text-align: center;}@font-face {font-family: "myfont";src: url('font/FZLTXHJW.TTF');}#show-box {position: absolute;left: 0;right: 0;top: 50%;font: bold 3em "myfont";text-align: center;}footer {position: absolute;bottom: 0;left: 0;right: 0;text-align: center;font: italic 12pt "myfont";}.tip{display: inline-block;animation: sc 5s infinite linear;}/*自定义动画*/@-webkit-keyframes sc{0%{transform: scale(1.0);}50%{transform: scale(1.5);}100%{transform: scale(1.0);}}</style></head><body><div class="aside-left"><h2>操作说明</h2><ol><li>回车开始抽取</li><li>再次回车暂停</li><li>3次抽取后结束</li><li>ESC键重新抽取</li></ol></div><div class="container"><div class="title">辩论赛观众名额抽取</div><div id="show-box"><span class="tip">Enter键开始</span></div></div><div class="aside-right"><h2>抽中名单</h2><ol id="list"></ol></div><footer>柴氏集团 版权所有&copy; by MRChaiLiu</footer><!--背景音乐 --><audio src="source/bgm.mp3" autoplay id="bgm" loop="-1"></audio><script>//数据var names = ['郭山彤','梁敦厦','霍负浪','虞信品','马仁毅','冯州龙','简务帅','黎丙赣','谢尉争','赵单羽','孟航沛','龚开梦','黄蓝风','易堃登','蔡农仲','高洪泉','巫家昱','赵道霄','章学共','乐武亮','费宜鸿','张津广','梁胤鸣','吕 聪','蒋进如','林豪谱','孙剑佛','魏成贯','卫耿羿','谢协湃','岑刚飘','吴资龙','陈仓翼','刘枝迟','尤帅齐','孙彩武','陈莉汐','程欢亭','邬肖任','尤政航','颜东鑫','欧有皆','高季晨','孙奎汝','龚韶釜','费汐家','钱铮友','沈锵良','傅 利','雷友水'];var intavlflag; //标记var isBegin = false; //是否正在滚动 默认未开始状态var lucker; //记录当前幸运儿var luckers = []; //存储所有幸运儿//全局按键事件document.onkeydown = function(e) {//获取事件对象中的按键码   13:enter       27:escswitch(e.keyCode) {case 13://抽取相关extract();break;case 27://将已被抽取的名单合并到源数组中(归还名额)names = names.concat(luckers);console.info('还原数组:' + names);luckers = []; //清空数组//清除列表内幸运儿名单$('list').innerHTML = '';break;}}//抽取准备function extract() {if(isBegin) {//停止clearInterval(intavlflag);//将幸运儿加入数组luckers.push(lucker);//动态创建节点var li = document.createElement('li');li.innerHTML = lucker;//将节点加入ol元素中$('list').appendChild(li);//从源数组移除被抽中的幸运儿removeName(names, lucker);//改变音效$('bgm').src = 'source/cheer.mp3';//增加样式(动画)$('show-box').className='tip';//标记滚动状态为停止isBegin = false;} else {//开始//先判断数组中人数是否已达到3人if(luckers.length < 3) {//启动抽取每隔0.05秒刷新界面内容intavlflag = setInterval(begin, 50);$('bgm').src = 'source/bgm.mp3';//去除样式(停止动画)$('show-box').className='';//将标志位设置为已启动isBegin = true;} else {alert('人数已满!');}}}//从源数组中移除被抽中的幸运儿function removeName(arr, name) {for(var i = 0; i < arr.length; i++) {if(arr[i] == name) {arr.splice(i, 1);console.info('移除:' + name + '--剩余:' + arr);break;}}}//开始抽取,随机获取下标function begin() {var index = Math.floor(Math.random() * names.length);lucker = names[index];$('show-box').innerHTML = lucker;}function $(id) {return document.getElementById(id);}</script></body></html>

 


http://www.ppmy.cn/news/274576.html

相关文章

CF550B Preparing Olympiad 题解

同我在洛谷的博客 洛谷题目传送门 与这道题相近的题目是&#xff1a;洛谷P2036 [COCI2008-2009#2] PERKET &#xff08;大家可以看一下这道题&#xff09; 题目大概就是&#xff1a;给定 n n n 个数&#xff0c;从中选出一些数&#xff0c;保证这些数之和在 [ l , r ] [l,…

ctfshow-菜狗杯-抽老婆

任意文件读取 抽老婆 打开首先发现是一个图片下载&#xff08;老婆们都很不错(&#xffe3;▽&#xffe3;)*&#xff09;&#xff0c;感觉也没什么其他的东西&#xff0c;先F12看一下代码&#xff0c;发现有一处标注&#xff0c;感觉跟任意文件下载有关&#xff1a; (一开…

Codeforces 期望概率dp 235B,351B,768D,50D,101D 题解

文章目录 235B Lets Play Osu!351B Jeff and Furik768D Jon and Orbs50D Bombing101D Castle 5道不错的概率dp. 235B Let’s Play Osu! 你 打 音 游 的 得 分 是 你 每 次 击 中 连 续 音 符 个 数 的 平 方 和 . 给 出 你 击 中 每 一 个 音 符 的 概 率 , 求 你 的 期 望 得 …

抽奖转盘HTML5

html代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compatible" content"IEedge">&…

MarsNFT|来抽盲盒吗?停不下来的那种!

生活就像盲盒&#xff0c;你永远不知道抽中的会是什么。MarsNFT于10月9日再次携手宏宝斋带来西游72变盲盒。首次白龙马藏品一经发售就立马抢完&#xff0c;受到了众多粉丝的青睐。这次盲盒新玩法十分值得期待&#xff0c;所谓先到先得&#xff0c;数量有限请活动时间准时登陆官…

华为全栈自主数据库GaussDB正式面向全球服务

一、前言 在6月7日举行的华为全球智慧金融峰会2023上&#xff0c;华为发布新一代分布式数据库GaussDB&#xff0c;并正式向全球客户提供服务。据介绍&#xff0c;GaussDB实现了核心代码100%自主研发&#xff0c;是国内当前唯一做到软硬协同、全栈自主的国产数据库。 可谓是里…

抽奖动画大转盘抽奖思路与做法

抽奖是各类营销活动中最常见的一种形式&#xff0c;本产品需求大致如下&#xff1a;转盘周围跑马灯交替闪烁&#xff0c;点击抽奖&#xff0c;大转盘旋转&#xff0c;调用接口获取抽奖结果&#xff0c;大转盘指针指向对应的奖品。高保如下图1 2.整体思路 本需求要求跑马灯交替闪…

cf55d

此题其实说实话不算是数位dp把&#xff0c;虽然我不是按最优的方法过的。但是感觉记忆划搜索是可以的 这个人写了个优化的&#xff1a;http://hi.baidu.com/sunhaowenprime/item/d3155f3418c14dd26c15e92e 我的是500啊 差好大啊。。。 我用dp【i】【j】【k】表示i长度&…