JavaScript制作简易计算器(不用eval)
程序员文章站
2022-06-08 16:37:04
本文实例为大家分享了js制作简易计算器的具体代码,供大家参考,具体内容如下
本文实例为大家分享了js制作简易计算器的具体代码,供大家参考,具体内容如下
<head> <meta charset="utf-8"> <title>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(img/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(img/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(img/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> <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> var showinput = document.getelementbyid("input1"); var isclear = false; var tempstr = ""; var clactype = ""; var iscontinue = true; function kick(clickvalue) { switch (clickvalue) { case "=": if (tempstr != "" && clactype != "") { showinput.value = clac(tempstr, showinput.value, clactype); iscontinue = false; clactype = ""; } break; case "+": case "-": case "*": case "/": //如果预存的操作符不为空 表示表示连续操作 if (clactype != "" && !iscontinue) { //先执行计算 tempstr = clac(tempstr, showinput.value, clactype); isclear = true; clactype = clickvalue; } else { tempstr = showinput.value; //点击操作符之后 预存字符 isclear = true;//表示点击了操作符 clactype = clickvalue;//预存操作符 } iscontinue = true; break; case "c": showinput.value = "0"; isclear = false; tempstr = ""; clactype = ""; break; default://普通的数字按钮点击 showinput.value = showinput.value == "0" ? "" : showinput.value; iscontinue = false; if (isclear) { showinput.value = ""; showinput.value += clickvalue; isclear = false; } else { showinput.value += clickvalue; } break; } } function clac(num1, num2, type) { switch (type) { 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: break; } } </script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。