1. 程式人生 > 其它 >js實現簡單計算器

js實現簡單計算器

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Js計算器</title>
<style>
* {
	margin: 0px;
	padding: 0px;
}
.box {
	margin: 100px auto;
	width: 325px;
	border: 1px solid black;
	padding: 20px;
	background-color: #BB5557;
	border-radius: 10px;
}
.keys {
	overflow: hidden;
	padding: 10px;
}
.keys span {
	border-radius: 50px;
	float: left;
	height: 30px;
	width: 50px;
	margin-left: 10px;
	margin-top: 10px;
        line-height: 30px;
	text-align: center;
	background: #ccc;
	box-shadow: 2px 2px 2px 2px black;  /*盒陰影x偏移量,y偏移量,Bulr模糊程度(半徑)**/
}
.outShow p {
	width: 95%;
	display: block;
	height: 80px;
	border-radius: 20px;
	/*border: 1px solid #ccc;*/
	background: white;
	color: black;
	text-align: right;
	line-height: 80px;
	font-size: 40px;
}
.keys span:hover {
	background: #ecf;
}
</style>
</head>
<body>
<div class="box">
  <div class="outShow">
    <p id="outShow"></p>
  </div>
  <div class="keys" id="keys"> <span>√</span> <span>±</span> <span>1/x</span> <span>x²</span> <span>x³</span> <span>7</span> <span>8</span> <span>9</span> <span>DEL</span> <span>C</span> <span>4</span> <span>5</span> <span>6</span> <span>÷</span> <span>*</span> <span>1</span> <span>2</span> <span>3</span> <span>+</span> <span>-</span> <span>0</span> <span>00</span> <span>.</span> <span>%</span> <span>=</span> </div>
</div>
</body>
<script>
    var outShow=document.getElementById("outShow");
    var keys=document.getElementById("keys");
    var spans=keys.getElementsByTagName("span");

    for(var i=0;i<spans.length;i++){
        spans[i].onclick=function(){
        var getvalue=spans[i].innerHTML;
            dealCount(getvalue);
            alert(getvalue);
        }
    }
    function dealCount(count){
        switch(count){
            case "=":
                break;
            case "+":
                break;
            case "-":
                break;
            case "*":
                break;
            case "÷":
                break;
            default:
                outShow.innerHTML=outShow.innerHTML+count.innerHTML;
                break;
        }
    }
    var outShow = document.getElementById("outShow");
    var spans = document.getElementById("keys").getElementsByTagName("span");

    var sNum1="";
    var op="";
    var isNeedClear=false;
    //給所有按鈕新增點選事件
    for(i=0;i<spans.length;i++){
        spans[i].onclick=function(){
            dealCount(this.innerHTML);
        }
    }
    //實現點選事件
    function dealCount(inpuvalue){
        switch(inpuvalue){
            case "=":
                var sNum2=outShow.innerHTML;
                optionsall(sNum1,sNum2,op);
                break;
			case "x²":

			case "x³":
	
			case "%":

			case "√":
				
			case "1/x":
				
			case "±":
				
            case "+":

            case "-":

            case "*":

            case "÷":
                sNum1=outShow.innerHTML;
                op=inpuvalue;
                outShow.innerHTML=op;
                isNeedClear=true;
                break;
				
            //清空鍵的功能實現
            case "C":
                outShow.innerHTML="";
                break;
				
            //刪除鍵的功能實現
            case "DEL":
                delNum=outShow.innerHTML
                outShow.innerHTML=delNum.substring(0,delNum.length-1);
                break;
				
				
				
            default:
                if(isNeedClear==false){
                    outShow.innerHTML=outShow.innerHTML+inpuvalue;
                }else{
                    outShow.innerHTML=inpuvalue;
                    isNeedClear=false;
                }
        }
    }
    //實現加減乘除功能
    function optionsall(sNum1,sNum2,op){
        switch(op){
            case "+":
     outShow.innerHTML=parseFloat(sNum1)+parseFloat(sNum2);
                break;
            case "-":
                outShow.innerHTML=parseFloat(sNum1)-parseFloat(sNum2);
                break;
            case "*":
                outShow.innerHTML=parseFloat(sNum1)*parseFloat(sNum2);
                break;
            case "÷":
                outShow.innerHTML=parseFloat(sNum1)/parseFloat(sNum2);
                break;
				 case "√":
               outShow.innerHTML=Math.sqrt(sNum1);
                break;
				 case "±":
                outShow.innerHTML=(0-sNum1);
                break;
				 case "1/x":
                outShow.innerHTML=1/parseFloat(sNum1);
                break;
				case "%":
              outShow.innerHTML=parseFloat(sNum1)%parseFloat(sNum2);
                break;
				case "x²":
              outShow.innerHTML=parseFloat(sNum1)*parseFloat(sNum1);
                break;
				case "x³":
              outShow.innerHTML=parseFloat(sNum1)*parseFloat(sNum1)*parseFloat(sNum1);
                break;
				
        }            
    }
    
</script>
</html>