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 { width: 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 { width: 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 { width: 250px; position: absolute; top: 130px; left: 130px; z-index: 1; }
#counter_content h3 { margin-bottom: 10px; }
#counter_content h3 input { border: none; width: 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 { width: 250px; }
#counter_content input { width: 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 { width: 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>