>  기사  >  웹 프론트엔드  >  JavaScript를 사용하여 복권 시스템을 구현하는 방법

JavaScript를 사용하여 복권 시스템을 구현하는 방법

亚连
亚连원래의
2018-06-11 17:20:424837검색

이 글에서는 주로 JavaScript 기반의 복권 시스템 구현에 대해 자세히 소개하며, 관심 있는 친구들은 참고할 수 있습니다.

JavaScript를 사용하여 [시작] 버튼과 [중지] 버튼으로 간단한 복권 시스템을 구현해 보세요. .

기능:

-복권을 시작하려면 시작 버튼을 클릭하세요. 상품 이름이 무작위로 표시됩니다.
-복권을 중지하려면 중지 버튼을 클릭하세요.
-복권 시작과 중지 사이를 전환하려면 Enter 키를 누르세요. 운.

html 코드:

html 구조를 생성합니다. 가장 기본적인 것은 표시된 상품 이름과 시작 및 중지 버튼을 포함하는 것입니다.

<!doctype html>
<html>

<head>
 <title>抽奖系统</title>
 <meta charset="utf-8">
 <link type="text/css" rel="stylesheet" href="css/style.css">
 <script type="text/javascript" src="js/script.js"></script>
</head>

<body>
 <p id="title" class="title">开始抽奖啦!</p>
 <p class="btns">
  <span id="play">开 始</span>
  <span id="stop">停 止</span>
 </p>
</body>

</html>

js 메인 코드 스니펫:

먼저 데이터 배열을 정의하고 각 상품의 이름을 작성합니다. 그리고 타이머와 키보드 이벤트 상태 플래그를 초기화합니다(초기 상태는 0, 키보드를 누르면 1로 변경, 다시 키보드를 누르면 0으로 변경 등).

var data=[&#39;Phone7&#39;,&#39;Ipad&#39;,&#39;三星笔记本&#39;,&#39;佳能相机&#39;,&#39;惠普打印机&#39;,&#39;谢谢参与&#39;,&#39;100元充值卡&#39;,&#39;1000元超市购物券&#39;];
 timer = null,
 flag = 0;

복권 시작 함수 정의 playFun();

function playFun() {
 var title = document.getElementById(&#39;title&#39;);
 var play = document.getElementById(&#39;play&#39;);
 //每次都先清除上一次的定时器任务,避免抽奖效果累加频率会越来越快
 clearInterval(timer);
 //定时器50毫秒触发一次
 timer = setInterval(function(){
  //获取奖品下标随机数
  var random = Math.floor(Math.random() * data.length);
  //显示随机的奖品名称
  title.innerHTML = data[random];
 }, 50);
 //改变将开始按钮背景色
 play.style.background = &#39;#666&#39;;
}

복권 중지 기능 정의 stopFun();

function stopFun(){
 //清除定时器即可结束抽奖
 clearInterval(timer);
 var play = document.getElementById(&#39;play&#39;);
 //改变将停止按钮背景色
 play.style.background = &#39;#036&#39;;
}

복권 상태 이벤트를 전환하려면 Enter 키를 누르세요.

document.onkeyup = function(event){
 event = event || window.event;
 //回车键键码为13
 if (event.keyCode == 13) {
  //如果状态flag值为0则开始抽奖,并把状态值改为1,否则停止抽奖并把状态值改为0
  if (flag == 0){
   playFun();
   flag = 1;
  }else{
   stopFun();
   flag = 0;
  }
 }
}

js 전체 코드:

var data = [&#39;Phone7&#39;, &#39;Ipad&#39;, &#39;三星笔记本&#39;, &#39;佳能相机&#39;, &#39;惠普打印机&#39;, &#39;谢谢参与&#39;, &#39;100元充值卡&#39;, &#39;1000元超市购物券&#39;],
 timer = null, //定时器
 flag = 0; //用于键盘事件状态标记

window.onload = function() {

 var play = document.getElementById(&#39;play&#39;),
  stop = document.getElementById(&#39;stop&#39;);

 // 开始抽奖
 play.onclick = playFun;
 stop.onclick = stopFun;

 // 键盘事件
 document.onkeyup = function(event) {
  event = event || window.event;
  if (event.keyCode == 13) {
   if (flag == 0) {
    playFun();
    flag = 1;
   } else {
    stopFun();
    flag = 0;
   }
  }
 }
}
// 开始抽奖
function playFun() {
 var title = document.getElementById(&#39;title&#39;);
 var play = document.getElementById(&#39;play&#39;);
 //每次都先清除上一次的定时器任务,避免抽奖效果累加频率会越来越快
 clearInterval(timer);
 timer = setInterval(function() {
  var random = Math.floor(Math.random() * data.length);
  title.innerHTML = data[random];
 }, 50);
 play.style.background = &#39;#999&#39;;
}
//停止抽奖
function stopFun() {
 clearInterval(timer);
 var play = document.getElementById(&#39;play&#39;);
 play.style.background = &#39;#036&#39;;
}

css 스타일:

* {
 margin: 0;
 padding: 0;
}

.title {
 font-size: 24px;
 font-weight: bold;
 width: 400px;
 height: 70px;
 margin: 0 auto;
 padding-top: 30px;
 text-align: center;
 color: #f00;
}

.btns {
 width: 190px;
 height: 30px;
 margin: 0 auto;
}

.btns span {
 font-family: &#39;微软雅黑&#39;;
 font-size: 14px;
 line-height: 27px;
 display: block;
 float: left;
 width: 80px;
 height: 27px;
 margin-right: 10px;
 cursor: pointer;
 text-align: center;
 color: #fff;
 border: 1px solid #eee;
 border-radius: 7px;
 background: #036;
}

위 내용은 제가 모두를 위해 편집한 것입니다. 앞으로 도움을 드릴 때 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

vue에서 사용자 정의 전역 메서드를 구현하는 방법

Vue2.0에서 하위 형제 구성 요소 간의 데이터 상호 작용을 구현하는 방법

부트스트랩에서 테이블 지원 높이 백분율을 구현하는 방법

vue 2.x

vue 2.x에서 axios로 캡슐화된 get 및 post 메소드를 사용하는 방법 vue 컴포넌트 전달 객체에 단방향 바인딩을 구현하려면 어떻게 해야 하나요?

위 내용은 JavaScript를 사용하여 복권 시스템을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.