js之简易计算器

<!DOCTYPE html PUBLIC "-//W3C//Dli XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/Dli/xhtml1-transitional.dli">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>简易计算器</title>
<style type="text/css"  />
 
* { padding: 0; margin: 0; }
li { list-style: none; }
body { background: #940032; }
 
#counter {  500px; height: 420px; background:#939; margin: 50px auto 0; position: relative; }
#counter h2 { line-height: 42px; padding-left: 15px; font-size: 14px; font-family: arial; color: #ff3333; }
#counter a { font-weight: normal; text-decoration: none; color: #ff3333; }
#counter a:hover { text-decoration: underline; }
#bg {  280px; height: 200px; border: 3px solid #680023; background: #990033; filter: alpha(opacity=80); opacity: 0.8; position: absolute; left: 50%; top: 115px; margin-left: -141px; }
#counter_content {  250px; position: absolute; top: 130px; left: 130px; z-index: 1; }
#counter_content h3 { margin-bottom: 10px; }
#counter_content h3 input { border: none;  223px; height: 30px; line-height: 30px; padding: 0 10px; background: url(images/ico.png) no-repeat; text-align: right; color: #333; font-size: 14px; font-weight: bold; }
#counter_content div {  250px; }
#counter_content input {  60px; height: 30px; line-height: 30px; float: left; background: url(images/ico.png) no-repeat -303px 0; text-align: center; color: #fff; cursor: pointer; margin: 0 1px 4px 0; border:0; }
#counter_content div > input:hover { background: url(images/ico.png) no-repeat -243px 0; }
#counter p {  500px; position: absolute; bottom: 20px; left: 0; color: #ff3333; text-align: center; font-size: 12px; }
</style>
</head>
</head>
 
<body>
 
<div id="counter">
    <h2>简易计算</h2>
    <div id="counter_content">
        <h3><input id="input1" type="text" value="0" /></h3>
        <div id="div1">
            <input type="button" value="7" onclick="kick('7')"/>
            <input type="button" value="8" onclick="kick('8')"/>
            <input type="button" value="9" onclick="kick('9')"/>
            <input type="button" value="+" onclick="kick('+')"/>
            <input type="button" value="4" onclick="kick('4')"/>
            <input type="button" value="5" onclick="kick('5')"/>
            <input type="button" value="6" onclick="kick('6')"/>
            <input type="button" value="-" onclick="kick('-')"/>
            <input type="button" value="1" onclick="kick('1')"/>
            <input type="button" value="2" onclick="kick('2')"/>
            <input type="button" value="3" onclick="kick('3')"/>
            <input type="button" value="*" onclick="kick('*')"/>
            <input type="button" value="0" onclick="kick('0')"/>
            <input type="button" value="C" onclick="kick('C')"/>
            <input type="button" value="=" onclick="kick('=')"/>
            <input type="button" value="/" onclick="kick('/')"/>
        </div>
    </div>
    
    
</div>
</body>
<script type="text/javascript">
    var oInput = document.getElementById("input1");
    
    var opt = ""; //预存操作符
    var sNum1 = ""; //预存第一个数字
    var isAppend = true; //是否要追加数字
    
    function kick(btn){
        switch(btn) {
            case "=":
                oInput.value = cal(sNum1 , oInput.value, opt);
                break;
            case "+":
            case "-":
            case "*":
            case "/":
                oInput.value = cal(sNum1 , oInput.value, opt);
                opt = btn;
                isAppend = false;
                sNum1 = oInput.value
                break;
            case "C":
                opt = "";
                sNum1 = "";
                oInput.value = "0";
                break;
            default:
                oInput.value = oInput.value == "0" ? "" : oInput.value;
                if(opt == "" || isAppend) {
                    oInput.value += btn;
                } else {
                    oInput.value = btn;
                    isAppend = true;
                }
                
        }
    }
    
    function cal(num1 , num2 , opt){
        switch(opt) {
            case "+" : return Number(num1)+Number(num2);
            case "-" : return Number(num1)-Number(num2);
            case "*" : return Number(num1)*Number(num2);
            case "/" : return Number(num1)/Number(num2);
            default: return Number(oInput.value);
        }
    }
</script>
</html>

  

 
原文地址:https://www.cnblogs.com/bgwhite/p/9476470.html