美文网首页
2018-11-10

2018-11-10

作者: 白羽之鹰 | 来源:发表于2018-11-10 21:33 被阅读0次

    简单计算器(JavaScript实现)

    功能比较简单,还需完善。

    效果:


    HTML部分:

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8" />

    <title></title>

    <link rel="stylesheet" href="css/calculator.css" />

    <script type="text/javascript" src="js/calculator.js" ></script>

    </head>

    <body>

    <div class="box">

    <input type="text" value="0" id="show"/>

    <div class="first">

    <button class="bcolorr">1</button> <button class="bcolorr">2</button> <button class="bcolorr">3</button> <button>/</button>

    </div>

    <div class="first">

    <button class="bcolorr">4</button> <button class="bcolorr">5</button> <button class="bcolorr">6</button> <button>x</button>

    </div>

    <div class="first">

    <button class="bcolorr">7</button> <button class="bcolorr">8</button> <button class="bcolorr">9</button> <button>-</button>

    </div>

    <div class="first">

    <button class="bcolorr">0</button> <button>C</button> <button>=</button> <button>+</button>

    </div>

    </div>

    </body>

    </html>

    CSS部分:

    .box{

    border: 2px solid gray;

    width: 450px;

    height: 600px;

    margin: auto auto;

    border-radius: 10px;

    }

    input{

    height: 200px;

    width: 420px;

    background-color: darkseagreen;

    margin:auto auto;

    margin-top: 10px;

    position: relative;

    top: 0px;

    left: 15px;

    font-size: 35px;

    }

    button{

    background-color: orange;

    padding: 20px  30px 20px 30px;

    margin: 10px 30px 10px 0px;

    font-size: 20px;

    }

    .first{

    position: relative;

    top: 0px;

    left: 24px;

    }

    .bcolorr{

    background-color: gray;

    }

    button:hover{

    cursor: pointer;

    box-shadow: 5px 5px 2px black;

    }

    button:active {

        box-shadow: 0 0 5px 5px dodgerblue;

    }

    JavaScript部分:

    window.onload=function(){

    var btn=document.getElementsByTagName('button');

    var needClear=false;

    var oshow=document.getElementById("show");

    var number1="";

    var operator="";

    Array.prototype.forEach.call(btn,function(el){

    console.log(el);/*el表示每一次访问的元素是谁,遍历所有按钮*/

    el.onclick=doinput;

    });

    function doinput(){

    var html=this.innerHTML;/*获取点击按钮的内容*/

    switch(html)

    {

    case "=":

    oshow.value=calc(number1*1,oshow.value*1,operator);

    needClear=false;

    break;

    case "C":oshow.value=0;

    needClear=false;//todo//

    break;

    case "+"://todo//

    case "-"://todo//

    case "x"://todo//

    case "/"://todo//

    if(number1.length!=0)

    {

    oshow.value=calc(number1*1,oshow.value*1,operator);

    }

    operator=html;//保存运算符

    number1=oshow.value;//保存第一个运算数字

    needClear=false;

    break;

    default://todo needClear bool值为true时执行

    if(needClear){

    oshow.value+=html;//拼接

    }

    else{

    oshow.value=html;//替换

    needClear=true;//替换完成后又变为true,然后执行拼接

    }

    break;

    }

    }

    function calc(number1,number2,operator){

    var result=0;//结果

    switch (operator)

    {

    case "+":result=number1+number2;

    break;

    case "-":result=number1-number2;

    break;

    case "x":result=number1*number2;

    break;

    case "/":result=number1/number2;

    break;

    default:result=number2;

    break;

    }

    return result;

    }

    }

    相关文章

      网友评论

          本文标题:2018-11-10

          本文链接:https://www.haomeiwen.com/subject/qletfqtx.html