07 JS+HTML 完成一个简单的计算器

先看效果:

关键代码:

js中:

document.getElementById().value;获取标签的值。可以用它来获取输入框的值,以及赋值。同样滴可以用它获取按钮的值。

不多说了,上代码

 html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>计算器</title>
		<link rel="stylesheet" type="text/css" href="css/multiple.css"/>
	</head>
	<body>
		<script type="text/javascript">
			var flag = true;//document.getElementById("screen").value为空时
			var lastChar =-1; //上一个按钮的值
			function test(btn){
				if(document.getElementById("screen").value=="520——我也爱你"||document.getElementById("screen").value=="受不了了!!!"){
					document.getElementById("screen").value="";
					flag = true;
				}
				var v = btn.value;//获取按钮的值
				if(flag&&(v=="*"||v=="/"||v=="="||v=="+")){
					document.getElementById("screen").value="";
				}else if("C"==v){
					document.getElementById("screen").value="";
					flag = true;
				}else if("="==v){
					doMath();
				}else{
					if(!(("+"==lastChar||"-"==lastChar||"*"==lastChar||"/"==lastChar)&&(v=="+"||v=="-"||v=="*"||v=="/"||v=="="))){
						if(document.getElementById("screen").value.length<17){//太长了就不让输入了
						document.getElementById("screen").value+=v;
						lastChar = v;
						flag = false;
						}
					}
				}
			}
			function doMath(){//对拼接的字符串进行运算
				document.getElementById("screen").value = eval(document.getElementById("screen").value);
				if(document.getElementById("screen").value.length>18){
					document.getElementById("screen").value="受不了了!!!";
				}
				if(document.getElementById("screen").value=="520"){
					document.getElementById("screen").value="520——我也爱你"
				}
			}
		</script>
		<div id="frame">
			<div id="screen-warp">
				<input type="text" id="screen" value="" />
			</div>
			<div id="button-wrap">
				<div id="number-wrap">
					<table id="number">
						<tr>
							<td><button type="button" onclick="test(this)" value="1">1</button></td>
							<td><button type="button" onclick="test(this)" value="2">2</button></td>
							<td><button type="button" onclick="test(this)" value="3">3</button></td>
						</tr>
						<tr>
							<td><button type="button" value="4"  onclick="test(this)">4</button></td>
							<td><button type="button" value="5"  onclick="test(this)">5</button></td>
							<td><button type="button" value="6"  onclick="test(this)">6</button></td>
						</tr>
						<tr>
							<td><button type="button" value="7"  onclick="test(this)">7</button></td>
							<td><button type="button" value="8"  onclick="test(this)">8</button></td>
							<td><button type="button" value="9"  onclick="test(this)">9</button></td>
						</tr>
						<tr>
							<td><button type="button" value="C"  onclick="test(this)">C</button></td>
							<td><button type="button" value="0"  onclick="test(this)">0</button></td>
							<td><button type="button" value="="  onclick="test(this)">=</button></td>
						</tr>
					</table>
				</div>
				<div id="character">
					<div><button type="button" value="+" onclick="test(this)">+</button></div>
					<div><button type="button" value="-" onclick="test(this)">-</button></div>
					<div><button type="button" value="*" onclick="test(this)">*</button></div>
					<div><button type="button" value="/" onclick="test(this)">÷</button></div>
				</div>
			</div>
		</div>
	</body>
</html>

  

 

css文件

html{
	padding: 0;
	margin: 0;
	background-color: #7494c8;
}
#frame{
	border:1px solid black;
	width:380px;
	height:500px;
	margin: auto;
	margin-top: 10px;
	background-color: #9b95a7;
}
#screen-warp{
	width: 95%;
	height: 100px;
	margin:10px;
}
#screen{
	width: 98%;
	height: 90%;
	border:1px black solid;
	font-size: 33px;
}
#number-wrap{
	width: 68%;
	height: 360px;
	margin-left:10px;
	float: left;
}
#number{
	width:100%;
	height: 100%;
}
#number tr td{
	height: 25%;
	width: 33%;
	border:  solid 1px;
	text-align: center;
}

#character{
	height: 359px;
	width: 24%;
	float: left;
	margin-left:10px;
}
#character div{
	height: 25%;
	text-align: center;
	line-height: 84px;
	border: 1px solid;
}
#character div{
	margin:auto;
	margin-top: 2px;
	height: 85px;
	width: 90%;
}
button{
	width: 100%;
	height: 100%;
	font-size: 30px;
}

  

posted @ 2020-01-17 11:33  Scorpicat  阅读(396)  评论(0编辑  收藏  举报