下面是计算器的实现方法,主要是使用了JQ,设计原型依据小米手机计算器,实现了基础的单步骤运算,做了简单的校验判断,实现了加减乘除取余等功能;
实现效果如下图:
下面是代码:
代码语言:javascript复制<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算器</title>
<style>
td{
width: 50px;
height: 50px;
line-height: 50px;
text-align: center;
border:solid 1px #999;
cursor: pointer;
}
td:hover{
border:solid 1px #005ca9;
}
#res{
height: 55px;
width: 223px;
border: solid 1px #999;
outline: none;
cursor: not-allowed;
word-wrap: break-word;
}
</style>
</head>
<body>
<div id="res"></div>
<table>
<tbody>
<tr>
<td>AC</td>
<td>删除</td>
<td>%</td>
<td>/</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td>9</td>
<td>*</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
<td>-</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td> </td>
</tr>
<tr>
<td></td>
<td>0</td>
<td>.</td>
<td>=</td>
</tr>
</tbody>
</table>
<script src="jquery.min.js"></script>
<script>
//计算时间
$("td").click(function(){
var res = 0;
//获取值
var v = $(this).text();
if(!v){
return true;
}
var nowVal = $("#res").text();
//计算一次后需要重置
if(nowVal.indexOf('=') > 0){
console.log("重新计算");
$("#res").html('');
}
//如果字符串以 符号 开头需提醒
var mark = [' ','-','*','/','%'];
if(mark.indexOf(v) > -1 && v.length == 1 && nowVal.length == 0){
alert("请先输入分母");
$("#res").html('');
return false;
}
//如果字符串以 . 开头需提醒
if(v == '.' && v.length == 1 && nowVal.length == 0){
alert("请先输入正确数字");
$("#res").html('');
return false;
}
switch(v){
case 'AC':
console.log("全清");
$("#res").html('');
break;
case '=':
console.log("等于");
$("#res").append('=' eval(nowVal));
break;
case '删除':
console.log("删除");
$("#res").html(nowVal.substr(0,nowVal.length-1));
break;
default:
console.log("写入");
$("#res").append(v);
}
});
</script>
</body>
</html>