【前端】利用css实现不清除数字的计算器(起点闭关计划)

实现一个计算器,让计算器在计算的时候能够对前面的数字进行显示

效果图:

 代码实现:


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>计算器</title>
		<script type="text/javascript">
		
			//	初始状态,记得每次按等号要还原
			var t1 = 0, t2 = 0, flag = 0;	//初始0 加法1 减法2 乘法3 除法4
			
			var equal_times = 0;
			
			function cal(n){	//传参 n
				
				if(n != 'C')
					document.getElementById("txt-1").value += n;	//直接展示,因为都要展示,但是C除外
				
				if(n >= 0 && n <= 9){	//如果n是数字
					//还未敲操作数分支
					if(flag >= 1 && flag <= 4){	//意为:如果已经敲了+-*/后再敲数字,就可以取t2了
						t2 = t2 * 10 + parseInt(n);	//得到t2
					}
				}
				else{	//如果n不是数字
					switch(n){
						case 'C':	//还原 
							document.getElementById("txt-1").value = "";
							//★★★★★★★★★★★这个equal_times也要归位!!!★★★★★★★★★★
							t1 = t2 = flag = equal_times = 0;
							break;
							
							
						case '+':
							t1 = parseInt(document.getElementById("txt-1").value);	//得到t1
							flag = 1;	//表明是加法
							break;
						case '-':
							t1 = parseInt(document.getElementById("txt-1").value);
							flag = 2;
							break;
						case '*':
							t1 = parseInt(document.getElementById("txt-1").value);
							flag = 3;
							break;
						case '÷':
							t1 = parseInt(document.getElementById("txt-1").value);
							flag = 4;
							break;
							
							
						case '=':
							//检查这是第几次等于
							++equal_times;
							// 	★★★数字加空串变字符串★★★
							// flag += '';
							//如果下面是 case '1' 时就需要修改。case 1 这样是数字
							switch(flag){
								case 1:
								//只要不是第一次等于。t1就等于原来两数相加,。即可实现连加。
									if(equal_times > 1)
											t1 += t2;
									document.getElementById("txt-1").value += t1 + t2;
									break;
								case 2:
									if(equal_times > 1)
											t1 -= t2;
									document.getElementById("txt-1").value += t1 - t2;
									break;
								case 3:
									if(equal_times > 1)
											t1 *= t2;
									document.getElementById("txt-1").value += t1 * t2;
									break;
								case 4:
									if(equal_times > 1)
											t1 /= t2;
									document.getElementById("txt-1").value += t1 / t2;
									break;
							}
							//要连等于的话,以下变量无法归位,因为如果要归位,t1,t2,flag数据就丢失了。
							// t1 = t2 = flag = 0;	//flag归位,操作数归位
							break;
					}
				}
			}
			
		</script>
		
		<style type="text/css">
			#b-box{
				width: 300px;
				margin:150px auto;
			}
			.line input{
				width: 60px;
				height: 30px;
			}
			div{
				margin-top: 15px;
			}
		</style>
		
	</head>
	<body>
		<div id="b-box">
			<div id="tt"><label>计算器</label></div>
			<div id="txt"><input type="text" id="txt-1" /></div>
			<div class="line">
				<input type="button" value="7" onclick="cal(7)" />
				<!-- 经过测试cal(7)和cal('7')都可以,因为★★★判断★★★的时候自动转换 -->
				<input type="button" value="8" onclick="cal(8)" />
				<input type="button" value="9" onclick="cal(9)" />
				<input type="button" value="+" onclick="cal('+')" />
			</div>
			
			<div class="line">
				<input type="button" value="4" onclick="cal(4)" />
				<input type="button" value="5" onclick="cal(5)" />
				<input type="button" value="6" onclick="cal(6)" />
				<input type="button" value="-" onclick="cal('-')" />
			</div>
			
			<div class="line">
				<input type="button" value="1" onclick="cal(1)" />
				<input type="button" value="2" onclick="cal(2)" />
				<input type="button" value="3" onclick="cal(3)" />
				<input type="button" value="*" onclick="cal('*')" />
			</div>
			
			<div class="line">
				<input type="button" value="C" onclick="cal('C')" />
				<input type="button" value="0" onclick="cal(0)" />
				<input type="button" value="=" onclick="cal('=')" />
				<input type="button" value="÷" onclick="cal('÷')" />
			</div>
			
		</div>
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值