javascript制作的简单的速算器,html+css+js简单应用

这是一个超级简单可以进行练习口算的速算器,html和css以及javscript分别有三个。分别创建index.html和index.css以及index.js文件,把对应代码放进去即可,注意,玩的时候有声音哦。

我用的是最传统的方式写的,不是最简便的写法,前段的第一课,超级简单的应用,如果有那里错的望指出。

7c0d18865e7b41ac8b4a4fbab1218e5e.jpeg

目录

 

html代码:

css代码:

javascript代码:


 

 

html代码:

<!DOCTYPE html>

<html>

  <head>

     <meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

     <title>简易的速算器</title>

    <link rel="stylesheet" href="index.css" type="text/css">

  </head>

  <body>      

  <div id="top">

        <form id="form">

          时间:<input type="text" size="12" value="0:00" name="time" disabled="disabled">

             +<input type="radio" value="+" checked name="num-area">

              -<input type="radio" value="-" name="num-area">

              *<input type="radio" value="*" name="num-area">

              /<input type="radio" value="/" name="num-area">

        </form>

  </div>

  <div id="count">

       <div>正确:</div><div id="right">0</div><div>错误:</div><div id="error">0</div>

  </div>  

  <div id="mian">

       <div id="out"></div>

       <div id="num"></div>

       <div id="in">

            <div class="left-border">1</div>

            <div>2</div>

            <div>3</div>

            <div class="left-border">4</div>

            <div>5</div>

            <div>6</div>

            <div class="left-border">7</div>

            <div>8</div>

            <div>9</div>

            <div class="left-border bottom-border">0</div>

            <div class="bottom-border">-</div>

            <div class="bottom-border">开始</div>

       </div>

  </div>

  <script src="index.js"></script>

  </body>

</html>

css代码:

#top,#count,#mian{

     width:320px;

     margin:20px auto;

     text-align:center;

     clear:both;

}

#count>div{

width:80px;

font-size:20px;

float:left;

}

#out,#num{

     width:310px;

     height:60px;

     font-size:22px;

     line-height:60px;

     line-height:60px;

     border:5px solid black;

     border-bottom:none;

}  

#in>div{

     width:100px;

     height:100px;

     font-size:30px;

     line-height:100px;

     float:left;

     background:pink;

     border-top:5px solid black;

     border-right:5px solid black;

}

.left-border{

     border-left:5px solid black;

}

.bottom-border{

     border-bottom:5px solid black;

}

javascript代码:

var flag=false;result="";right_num=0;error_num=0;

var start=document.querySelector("#in>div:last-child");

var radio=document.getElementsByName("num-area");

var out=document.querySelector("#out");

var num_click=document.querySelectorAll("#in>div:not(#in>div:last-child)");

var num=document.querySelector("#num");

var right=document.querySelector("#right");

var error1=document.querySelector("#error");

//以下添加初始化每一轮随机数

function update(){

   //获取算术符号,随机产生

   for(var i=0;i<radio.length;i++){

         if(radio[i].checked){

            result=parseInt(Math.random()*99+1)+radio[i].value+parseInt(Math.random()*99+1);

            out.innerHTML=result;

            break;

         }

      }  

}

//以下添加开始绑定事件

start.οnclick=function(){

      right_num=0;error_num=0;

      right.innerHTML=0;

      error.innerHTML=0;

      num.innerHTML="";

      if(flag)clearInterval(timer);

      update();

      //以下进行计时

         var time=0;

         timer=setInterval(fn,1000);

         function fn(){

            time++;

            form.time.value=parseInt(time/60)+":"+(time%60<10?"0"+time%60:time%60);

         }

   flag=true;

}

//y以下添加数字按钮点击绑定事件

for(var i=0;i<num_click.length;i++){

num_click[i].οnclick=function(){

    if(!flag)return;

    num.innerHTML+=this.innerHTML;

      if(parseInt(eval(result)).toString().indexOf(num.innerHTML)==0){

         if(eval(result)==num.innerHTML){

            new Audio('https://downsc.chinaz.net/files/download/sound1/201212/2445.mp3').play();

            right_num++;

            right.innerHTML=right_num;

            num.innerHTML="";

            update();

         }

         }else{//如果不符合条件执行下面代码

            new Audio('https://downsc.chinaz.net/files/download/sound1/201403/4204.mp3').play();

            error_num++;

            error.innerHTML=error_num;

            num.style.color="red";

            setTimeout(function(){

            num.style.color="";

            num.innerHTML="";

            update();

            },500);    

      }

   }

}

 

  • 30
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值